根据另一个数据框中的值向数据框添加列

时间:2016-12-29 13:23:17

标签: python pandas dataframe

我有两个数据框,我需要使用第一个数据框向第二个数据框添加一个新列,如果它存在于第一个数据帧中,则其值为TRUE

第一个数据框具有美国大学城的州和地区名称

FALSE

第二个数据框的每季度增长率。它在State和RegionName上编入索引

    State    RegionName
  0 Alabama  Auburn
  1 Alabama  Florence
  2 Alabama  Jacksonville
  3 Illinois Chicago

因此输出数据帧将是

                         2008q3         2008q4
State       RegionName                  
Alabama     Jacksonville 499766.666667  487933.333333
California  Los Angeles  469500.000000  443966.666667
Illinois    Chicago      232000.000000  227033.333333

非常感谢任何帮助

1 个答案:

答案 0 :(得分:4)

其中一种可能的方法是使用Index.isin方法检查对应于多索引DF2的索引键是否作为DF1中的相应列出现在两者上水平。

然后使用np.where在创建的布尔掩码的&条件满足后执行赋值操作( True ),否则( False )。

cond1 = df2.index.isin(df1['State'], level=0)   # Check level=0 and df1['State']
cond2 = df2.index.isin(df1['RegionName'], level=1) # Check level=1 and df1['RegionName']

df2.assign(univ_town=np.where(cond1 & cond2, 'TRUE', 'FALSE'))

enter image description here