两个pandas数据帧之间的复杂连接

时间:2016-06-07 13:43:05

标签: python numpy pandas

我需要加入两个大型pandas数据帧,然后填写缺失值:

Dataframe#1包含A,B和C列,

Dataframe#2包含A,B和C列,但缺少C的所有值

我正在尝试连接数据帧#1和#2,以便两个数据帧中A列和B列的值相等,然后将数据帧#2中的缺失值替换为数据帧#1中的值。

我已经尝试了一个强大的力量"通过循环遍历各种数据帧,但每个数据帧中的数据量使这成为一个挑战。

使用pandas和/或numpy有没有一种有效的方法呢?

另外:我不确定它是否重要,但所有值都是数字整数值。

感谢任何帮助!

1 个答案:

答案 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