我有一个像这样的数据集:
df
我想选择"MI"
个样本并添加到另一个数据框中。例如:如果Rank = 0,我想随机选择MI = 2行。或者,如果Rank = 1,我想选择MI = 5行。
这是我的代码,但是不起作用
All_M=pd.DataFrame()
A= df['Ranking'].min()
for i in range(0 , len(df)):
x6 = df[(df['Ranking'] == A)].apply(lambda x:x.sample(int(df["MI"][i])).reset_index(drop=True))
All_M= x6.append(All_M)
A = A + 1
答案 0 :(得分:0)
IIUC,我认为您可以使用groupby语句来实现无循环操作
new_df = df.groupby('rank', group_keys=False)\
.apply(lambda x: x.sample(x.iloc[0, x.columns.get_loc('MI')]))