从另一个数据帧行中的值填充pandas数据帧行

时间:2017-07-31 23:21:50

标签: python pandas

我有两个pandas数据帧,如下所示:

DF1

Name   City        Postal_Code     State
James  Phoenix        85003         AZ
John   Scottsdale     85259         AZ
Jeff   Phoenix        85003         AZ
Jane   Scottsdale     85259         AZ

DF2

Postal_Code       Income       Category
  85003            41038         Two
  85259            104631        Four

我想通过从{{1}捕获IncomeCategory的值,向df1插入两列IncomeCategory }对应df2中每行的postal_code

我在SO中找到的最接近的问题是 - Fill DataFrame row values based on another dataframe row's values pandas。但是,pd.merge解决方案并没有为我解决问题。具体来说,我用了

df1

我得到的只是两个新列中的pd.merge(df1,df2,on='postal_code',how='outer') 值。不确定这是否是因为nandf1的行数不同。有什么建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

你错了怎么回事,改用'inner'。这匹配两个数据帧中存在键的位置

df1.Postal_Code = df1.Postal_Code.astype(int)
df2.Postal_Code = df2.Postal_Code.astype(int)


df1.merge(df2,on='Postal_Code',how='inner')


    Name        City  Postal_Code State  Income Category
0  James     Phoenix        85003    AZ   41038      Two
1   Jeff     Phoenix        85003    AZ   41038      Two
2   John  Scottsdale        85259    AZ  104631     Four
3   Jane  Scottsdale        85259    AZ  104631     Four