我有兩個數據幀,我想串聯(軸= 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