Python 根据条件,使用数据帧2中的相应值填充数据帧1列A中的NaN值

Python 根据条件,使用数据帧2中的相应值填充数据帧1列A中的NaN值,python,pandas,Python,Pandas,我是新来的熊猫,我有一个非常困难的时间与这一点。我有两个数据帧: Df1 Address Zip Parcel Number 123 Main St 12345 1234-567-890 456 Broadway Ave 55555 NaN Df2 Address Zip Parcel Number 456 Main St 66666

我是新来的熊猫,我有一个非常困难的时间与这一点。我有两个数据帧:

Df1
Address            Zip            Parcel Number
123 Main St        12345          1234-567-890
456 Broadway Ave   55555          NaN

Df2
Address            Zip            Parcel Number
456 Main St        66666          5555-555-555
456 Broadway Ave   55555          7777-777-777
我想做的是: 如果df1中的地址和邮政编码列与df2中的地址和邮政编码列相等,则使用df2中相应的地块编号值填充df1中地块编号列中的NaN值


任何帮助都将不胜感激

这称为
combine\u first
。首先在['Address','Zip']上为数据帧编制索引:

Df1.set_index(['Address', 'Zip'], inplace=True)
Df2.set_index(['Address', 'Zip'], inplace=True)
Df1.combine_first(Df2)

如果您想将地址和邮政编码保留为列,可以重新设置生成的数据帧的索引

这很有帮助,谢谢!我没有完全实现这个解决方案,但它确实为我指明了正确的方向。我最后做的是在每个数据帧中创建一个新列,将“Address”和“Zip”列组合在一起,然后在新列上合并两个数据帧,newdf=pd.merge(df1,df2,on='Property Address Zip',how='internal')。合并后,我使用.fillna来填充丢失的包裹号。