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

如何使用另一个数据帧(Python)中的数据填充数据帧NA值,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个Python数据帧,如何使用df2的值填充df1中的NAN值?我想要最后一个,如下图所示。我试过几种方法,但都失败了 df3 = df1.update(df2) 或 我找不到解决办法,有人能帮忙吗?如何用Python编写这部分代码 如何使用Df2在DF1中填充NAN值: 您对先合并的想法是正确的,但需要先通过设置索引来对齐索引: import pandas as pd, numpy as np df1 = pd.DataFrame({'Group': ['A', 'A', 'A',

我有两个Python数据帧,如何使用
df2
的值填充
df1
中的
NAN
值?我想要最后一个,如下图所示。我试过几种方法,但都失败了

df3 = df1.update(df2)

我找不到解决办法,有人能帮忙吗?如何用Python编写这部分代码

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


您对
先合并
的想法是正确的,但需要先通过
设置索引来对齐索引

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

非常感谢,工作做得很好,节省了我很多时间。:)
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