簡體   English   中英

合並具有相同索引的數據幀列表

[英]Merging a list of dataframes with the same index

通過在同一行中填充 NaN 值列,我會將數據框列表合並為一個。 數據幀也具有相同的索引。

df

        A       B
0       Red     Blue
1       Green   Red

df1

        A       B    Value1  Value2
0       Red     Blue    1.0   NaN
1       Green   Red     NaN   0.2

df2


       A        B     Value1    Value2
1      Green    Red    3.0      NaN
0      Red      Blue   NaN      0.15

代碼

df_list = [df1, df2]

df_final = pd.merge(df, df_list, left_index=True, right_index=True)

但是得到這個錯誤TypeError: Can only merge Series or DataFrame objects, a <class 'list'> was passed

預期產出


        A      B    Value1  Value2
0       Red    Blue   1     0.15
1       Green  Red    3     0.20

您可以使用functools.reduce重復調用combine_first

from functools import reduce

df_final = reduce(pd.DataFrame.combine_first, df_list, df)

它以df作為初始值開始,然后使用combine_first中的幀累積調用df_list以給出最終幀。

>>> df_final

       A     B  Value1  Value2
0    Red  Blue     1.0    0.15
1  Green   Red     3.0    0.20

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM