我想合并兩個不同的資料幀,第二個在第一個中有一些行要完成。
df4 = pd.DataFrame({'a':['red','green','yellow','blue'],'b':[1,5,6,7],'c':[1,7,8,9]})
df5 = pd.DataFrame({'a':'red','b':44, 'c':55}, index=[0])
print(pd.merge(df4,df5, how='left', on='a'))
輸出
a b_x c_x b_y c_y
0 red 1 1 44.0 55.0
1 green 5 7 NaN NaN
2 yellow 6 8 NaN NaN
3 blue 7 9 NaN NaN
預期產出
a b c
0 red 44 55
1 green 5 7
2 yellow 6 8
3 blue 7 9
uj5u.com熱心網友回復:
替換-為np.nan并使用combine_first:
df4.replace('-',np.nan,inplace=True)
df4.combine_first(df5)
印刷:
a b c
0 red 44.0 55.0
1 green 5.0 7.0
2 yellow 6.0 8.0
3 blue 7.0 9.0
uj5u.com熱心網友回復:
按列“a”連接并洗掉重復項。
print(pd.concat([df5, df4]).drop_duplicates(['a'], keep='first'))
uj5u.com熱心網友回復:
您可以使用DataFrame.update:
df4.update(df5)
輸出:
>>> df4
a b c
0 red 44.0 55.0
1 green 5 7
2 yellow 6 8
3 blue 7 9
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/363097.html
