使用pd.merge时填充NA

时间:2020-02-29 02:28:31

标签: python-3.x pandas

我有两个数据框,我想将它们合并到公共列中,如下所示。第二个数据帧中还有一个新列。

dummy_data1 = {'id': ['1', '2', '3', '4'],'name': ['A', 'C', 'E', 'G'],
           'year':['2012','2012','2012','2012']}

df1 = pd.DataFrame(dummy_data1, columns = ['id', 'name', 'year'])

dummy_data2 = {
    'id': ['1', '2', '3', '7',],
    'name': ['A', 'C', 'E', 'P'],
    'ADDRESS': ['X', 'Y', 'Z', 'P'],'year':['2013','2013','2013','2013']}

df2 = pd.DataFrame(dummy_data2, columns = ['id', 'name','ADDRESS','year'])

当我将这两个数据帧与

合并时
df_merge = pd.merge(df1, df2, on=['name','id','year'],how='outer')

由于新添加的列,我得到了某些行的NaN,如预期的那样:

enter image description here

我的问题是关于NaN,如果该ID的数据在其他数据帧中可用,是否有一种方法可以仅重复NaN的数据。因此,对于索引0,它带来“ X”而不是NaN,对于索引1,它带来“ Y”,依此类推。我只想假设不同年份的“地址”没有变化。 谢谢!

1 个答案:

答案 0 :(得分:2)

我建议使用pandas merge ordered,并使用backward fill

合并排序的作品以获取分类数据;因此,我建议在使用它对数据进行排序之前。就您而言,已经是。

throws
相关问题