我有N很多 DataFrame。每個 DataFrame 都有兩列,第一列始終為常量,date另一列名稱是動態的。所以例如
df1
date A
2017-12-31 5
2020-12-31 7
2021-12-31 8
df2
date B
2012-12-31 9
2020-12-31 6
等等。所以我想要一個結果result_df,它會date像這樣并排排列所有列
result_df
date A B ...
2012-12-31 - 9 ...
2017-12-31 5 - ...
2020-12-31 7 6 ...
2021-12-31 8 - ...
特殊情況- 我也很少有空的 DataFrame。我希望它合并到result_df,例如一個帶有列的空 DataFrame['date', 'C']將像這樣添加
result_df
date A B C ...
2012-12-31 - 9 - ...
2017-12-31 5 - - ...
2020-12-31 7 6 - ...
2021-12-31 8 - - ...
uj5u.com熱心網友回復:
我們可以concat groupby:first
dfX = pd.DataFrame(columns=['date','C'])
dfs = [df1, df2, dfX]
out = pd.concat(dfs).groupby('date', as_index=False).first().fillna('-')
輸出:
date A B C
0 2012-12-31 - 9.0 -
1 2017-12-31 5.0 - -
2 2020-12-31 7.0 6.0 -
3 2021-12-31 8.0 - -
uj5u.com熱心網友回復:
您可能想查看 pd.merge:https://pandas.pydata.org/docs/reference/api/pandas.merge.html 在您的情況下,以下代碼應該可以作業
df1.merge(df2, on='date', how='outer')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/441247.html
