如何使用另一个数据帧(Python)中的数据填充数据帧NA值

时间:2018-05-02 08:48:15

标签: python pandas dataframe

我在Python中有两个数据框,如何使用NAN的值填充df1中的df2值?我想要像df3这样的决赛,如下所示。我尝试了几种方法,但都失败了。

df3 = df1.update(df2)

df3 = df1.combine_first(df2)

我无法找到解决方案,任何人都可以提供帮助?我如何在Python中编写这部分代码?

如何使用Df2填充DF1中的NAN值:

how can i fill the NAN value in DF1 using Df2,

1 个答案:

答案 0 :(得分:-1)

您对combine_first有正确的想法,但需要先通过set_index对齐索引:

import pandas as pd, numpy as np

df1 = pd.DataFrame({'Group': ['A', 'A', 'A', 'B', 'B', 'B'],
                    'Key': ['AA1', 'AB2', 'AC3', 'BD4', 'BE5', 'BF6'],
                    'Value1': [np.nan, 20, 40, 60, np.nan, np.nan],
                    'Value2': [np.nan, 30, 50, 23, np.nan, np.nan]})

df2 = pd.DataFrame({'Key': ['AA1', 'BE5', 'BF6'],
                    'Value1': [66, 20, 21],
                    'Value2': [33, 60, 70]})

res = df1.set_index('Key').combine_first(df2.set_index('Key')).reset_index()

print(res)

   Key Group  Value1  Value2
0  AA1     A      66      33
1  AB2     A      20      30
2  AC3     A      40      50
3  BD4     B      60      23
4  BE5     B      20      60
5  BF6     B      21      70