簡體   English   中英

在忽略 NaN 值的同時合並 pandas 中的數據框

[英]Merging dataframes in pandas while ignoring NaN values

假設我有兩個數據框:

df_a
     A    B    C
0  1.0  NaN  NaN
1  NaN  1.0  NaN
2  NaN  NaN  1.0

df_b
     A    B    C
0  NaN  NaN  2.0
1  NaN  2.0  NaN
2  2.0  NaN  NaN

我將如何合並/連接它們,以便結果數據框如下所示:

df_c
     A    B    C
0  1.0  NaN  2.0
1  NaN  2.0  NaN
2  2.0  NaN  1.0

我在概念上更接近的方式是使用pd.merge(df_a, df_b, "right") ,但df_a上的所有值最終都被替換了。

合並時有什么方法可以忽略NaN值嗎?

在你的情況下做combine_first

df_c = df_b.combine_first(df_a)
df_c
Out[151]: 
     A    B    C
0  1.0  NaN  2.0
1  NaN  2.0  NaN
2  2.0  NaN  1.0
df_c = df_a.combine_first(df_b)
df_c
A   B   C
0   1.0 NaN 2.0
1   NaN 1.0 NaN
2   2.0 NaN 1.0

df_d = df_b.combine_first(df_a)
df_d
A   B   C
0   1.0 NaN 2.0
1   NaN 2.0 NaN
2   2.0 NaN 1.0

暫無
暫無

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

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