我有两个数据帧,我想串联(轴= 1)与内部联接。其中dataframes有一些重复的指标,但是行不重复,我不想从那些丢失数据:熊猫:连接数据帧,并保持重复索引
df1 = pd.DataFrame([{'a':1,'b':2},{'a':1,'b':3},{'a':2,'b':4}],
columns = ['a','b']).set_index('a')
df2 = pd.DataFrame([{'a':1,'c':5},{'a':2,'c':6}],columns = ['a','c']).set_index('a')
>>> df1
b
a
1 2
1 3
2 4
8 9
>>> df2
c
a
1 5
2 6
默认concat
行为与NaN的,以填补缺失值:
>>> pd.concat([df1,df2])
b c
a
1 2 NaN
1 3 NaN
2 4 NaN
1 NaN 5
2 NaN 6
我想保留来自df1的重复索引,并使用df2中的重复值填充它们,但是在pandas 0.13.1中,列上的内部连接会产生错误。在最近版本的熊猫concat做我想要的:
>>> pd.concat([df1, df2], axis=1, join='inner')
b c
a
1 2 5
1 3 5
2 4 6
什么是最好的方式来实现我想要的结果?有没有groupby解决方案?或者,也许我不应该使用concat
?
我会用pd.merge改为 – ZJS
你运行的是什么版本的熊猫?我正在运行'0.14.0' – EdChum