Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据第二个df中的值向df添加列_Python_Pandas - Fatal编程技术网

Python 根据第二个df中的值向df添加列

Python 根据第二个df中的值向df添加列,python,pandas,Python,Pandas,我有两个独立的数据帧df1和df2,两个数据帧都包含一个id列,该列链接它们之间的行df2有一个group列,而df1不包含该列。我想做的是检查df1中的每个id,检查它是否在df2中,然后它是否要获取组列值,并将其放入同名的新列下的df1。写一个循环的函数是最简单的还是有一个我可以利用的技巧 df1 = pd.DataFrame([[1, 'a'], [2, 'b'], [3, 'c']], columns=['i

我有两个独立的数据帧
df1
df2
,两个数据帧都包含一个
id
列,该列链接它们之间的行
df2
有一个
group
列,而
df1
不包含该列。我想做的是检查
df1
中的每个
id
,检查它是否在
df2
中,然后它是否要获取
列值,并将其放入同名的新列下的
df1
。写一个循环的函数是最简单的还是有一个我可以利用的技巧

df1 = pd.DataFrame([[1, 'a'],
                    [2, 'b'],
                    [3, 'c']], columns=['id', 'attr'])
df2 = pd.DataFrame([[2, 'd'],
                    [3, 'e'],
                    [4, 'f']], columns=['id', 'group'])

df1.merge(df2, how='left')

您可以将两个数据帧合并为一个数据帧,方法是在id列上连接它们,然后只保留所需的列:

df1 = merge(df1, df2, how='left', on='id')
df1.drop('unwanted_column',1)
你可能正在寻找。例如,
pandas.merge(df1,df2,how='outer',on='id'])