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来填充丢失的包裹号。