您好,登錄后才能下訂單哦!
要使用iloc
實(shí)現(xiàn)DataFrame的隨機(jī)樣本分層,首先需要對(duì)數(shù)據(jù)進(jìn)行分層,然后在每個(gè)層次上隨機(jī)抽取樣本。以下是一個(gè)示例:
import pandas as pd
import numpy as np
# 創(chuàng)建一個(gè)模擬數(shù)據(jù)集
data = {'A': np.random.randint(1, 100, 100),
'B': np.random.randint(1, 100, 100),
'C': np.random.choice(['a', 'b', 'c'], 100)}
df = pd.DataFrame(data)
# 對(duì)數(shù)據(jù)集進(jìn)行分層
stratified_data = df.groupby('C')
# 定義要抽取的樣本數(shù)量
sample_size = 5
# 從每個(gè)層次上隨機(jī)抽取樣本
random_samples = []
for group_name, group_data in stratified_data:
random_indices = np.random.choice(group_data.index, size=min(sample_size, len(group_data)), replace=False)
random_samples.append(group_data.loc[random_indices])
# 將抽取的樣本合并為一個(gè)新的DataFrame
random_sampled_df = pd.concat(random_samples)
print(random_sampled_df)
這個(gè)示例首先創(chuàng)建了一個(gè)包含3列(A、B和C)的模擬數(shù)據(jù)集,其中C列有3個(gè)類別(a、b、c)。然后,我們使用groupby
函數(shù)對(duì)數(shù)據(jù)集進(jìn)行分層,并從每個(gè)層次上隨機(jī)抽取5個(gè)樣本。最后,我們將抽取的樣本合并為一個(gè)新的DataFrame。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。