gpt4 book ai didi

python - Pandas 合并两个数据框,一个包含另一个数据框的列值

转载 作者:太空宇宙 更新时间:2023-11-04 11:14:20 26 4
gpt4 key购买 nike

我有两个 df小号,

df1

id group
1 0001
2 0001
3 0001
4 0002
5 0002
6 0003

df2

group name
0001 one
0002 one
0003 two

我试着看看 name包含 onedf2 , 并找到对应的 groupdf1 ;然后合并df1df2在这方面;

a = df2['name'].str.contains(pat=r'(?i)one', regex=True)
valid_groups = df2.loc[a]['group'].tolist()

c = df1['group'].isin(valid_groups)
df3 = df1.loc[c]

df4 = df3.merge(df2, how='left', on=['group'])

group name id
0001 one 1
0001 one 2
0001 one 3
0002 one 4
0002 one 5

我想知道是否有更好、更有效的方法来做到这一点。

最佳答案

如果只需要合并一列,使用map会更快:

a = df2['name'].str.contains(pat=r'(?i)one', regex=True)
valid_groups = df2[a].copy()
df = df1[df1['group'].isin(valid_groups['group'])].copy()

df['name'] = df['group'].map(valid_groups.set_index('group')['name'])

print (df)
id group name
0 1 0001 one
1 2 0001 one
2 3 0001 one
3 4 0002 one
4 5 0002 one

关于python - Pandas 合并两个数据框,一个包含另一个数据框的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57374343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com