基于列表值从数据帧中提取行的正确方法

2024-04-25 04:37:37 发布

您现在位置:Python中文网/ 问答频道 /正文

对于标签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

Tags: 数据方法idmapdataframedf列表new
1条回答
网友
1楼 · 发布于 2024-04-25 04:37:37

我想你在找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

相关问题 更多 >