如何使用另一个数据帧(Python)中的数据填充数据帧NA值
我有两个Python数据帧,如何使用如何使用另一个数据帧(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',
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