我需要加入两个大型pandas数据帧,然后填写缺失值:
Dataframe#1包含A,B和C列,
和
Dataframe#2包含A,B和C列,但缺少C的所有值
我正在尝试连接数据帧#1和#2,以便两个数据帧中A列和B列的值相等,然后将数据帧#2中的缺失值替换为数据帧#1中的值。
我已经尝试了一个强大的力量"通过循环遍历各种数据帧,但每个数据帧中的数据量使这成为一个挑战。
使用pandas和/或numpy有没有一种有效的方法呢?
另外:我不确定它是否重要,但所有值都是数字整数值。
感谢任何帮助!
答案 0 :(得分:4)
这是merge
:
import pandas as pd
df1 = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[np.NaN, np.NaN, np.NaN]})
df2 = pd.DataFrame({'A':[1,3],'B':[4,6],'C':[44, 55]})
In [150]: pd.merge(df1.drop(['C'], axis=1), df2, how='left', on=['A','B'])
Out[150]:
A B C
0 1 4 44
1 2 5 NaN
2 3 6 55