对于某些整数标签为group
的数据框,根据组标签列表获取子数据框的最佳方法是什么?
map = [[9,13],[21,22]]
train
group feature1
id
0 24 -0.141691
1 22 -0.527684
2 13 -0.586026
3 9 0.233221
4 21 -0.545011
目前我正在使用for循环,这显然是次优的。
df = pd.DataFrame()
for i in map[0]:
new_df = pd.concat([df,train[train.group==i]],axis=0)
new_df
group feature1
id
2 13 -0.586026
3 9 0.233221
答案 0 :(得分:1)
我认为您正在寻找pd.Series.isin
?
df[df['group'].isin(np.concatenate(map))]
group feature1
id
1 22 -0.527684
2 13 -0.586026
3 9 0.233221
4 21 -0.545011
如果您希望只与map[0]
相关联的记录:
df[df['group'].isin(map[0])]
group feature1
id
2 13 -0.586026
3 9 0.233221