JCh*_*hat 4 python random dataframe pandas
假设我有一个 Pandas 数据框,df它具有以下结构:-
Column 1 Column 2 .... Column 100
Row 1 0.233 0.555 0
Row 2 0.231 0.514 2
..
Row 15000 0.232 0.455 3
Run Code Online (Sandbox Code Playgroud)
Column 100表示每一行所属的特定类(可以来自0-14)。每个类别/类都有1000与之关联的行。对于每个类别(由 中的整数表示Column 100),我只想200随机选择样本,并创建一个新的数据框df_new,该数据框的新维度为15x200 = 3000 rows。有什么好方法可以达到这个目标吗?
DataFrame.sample按组使用- 然后对最后一列进行排序:
np.random.seed(2019)
df = (pd.DataFrame(np.random.randint(15, size=(100000, 100)))
.rename(columns=lambda x: f'Column {x+1}'))
#print (df.head())
N = 200
df1 = df.groupby('Column 100').apply(lambda x:x.sample(N)).reset_index(drop=True)
#print (df1.head())
print (len(df1))
3000
Run Code Online (Sandbox Code Playgroud)