【发布时间】:2017-01-06 04:42:08
【问题描述】:
我有两个数据框:df1 和 df2。
df1 如下:
name exist
a 1
b 1
c 1
d 1
e 1
df2(只有一列:名称)如下:
name
e
f
g
a
h
我想合并这两个dataframe,并没有合并重复的名字,我的意思是,如果df2中的名字存在于df1中,只显示一次,否则如果名字是df2,则df1中不存在,设置为存在值为 0 或 Nan。比如df1(有a和e),df2(有a和e,只显示a,e一次),我想成为下面的df:
a 1
b 1
c 1
d 1
e 1
f 0
g 0
h 0
我使用了 concat 函数,我的代码如下:
import pandas as pd
df1 = pd.DataFrame({'name': ['a', 'b', 'c', 'd', 'e'],
'exist': ['1', '1', '1', '1', '1']})
df2 = pd.DataFrame({'name': ['e', 'f', 'g', 'h', 'a']})
df = pd.concat([df1, df2])
print(df)
但结果错误(名称a和e重复显示):
exist name
0 1 a
1 1 b
2 1 c
3 1 d
4 1 e
0 NaN e
1 NaN f
2 NaN g
3 NaN h
4 NaN a
请举手,提前谢谢!
【问题讨论】:
标签: python pandas merge concat