pandas通过lis过滤大数据帧和顺序

2024-10-06 10:34:12 发布

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

我有一个大数据帧,如下所示:

master_df

             result   item
0            5        id13
1            6        id23432
2            3        id2832
3            4        id9823
......
84376253     7        id9632

另一个更小的数据帧如下:

df = pd.DataFrame({'item' : ['id9632', 'id13', 'id2832', 'id2342']})

如何从master_df.result中提取相关元素以与df.item匹配,从而实现以下目标:

df = df.assign(result=list_of_results_in_order)

Tags: 数据master元素目标dataframedfresultitem
2条回答

我认为需要^{}^{}

#for Series
s = master_df.loc[master_df['item'].isin(df['item']),'result']
print (s)
0           5
2           3
84376253    7
Name: result, dtype: int64

#for list
L = master_df.loc[master_df['item'].isin(df['item']),'result'].tolist()
print (L)
[5, 3, 7]

#for DataFrame
df1 = master_df[master_df['item'].isin(df['item'])]
print (df1)
          result    item
0              5    id13
2              3  id2832
84376253       7  id9632

您还可以执行^{}

df = df.merge(master_df, on='item', how='left)

相关问题 更多 >