很难用一种清晰准确的方式来表达这个问题,所以希望下面的内容能帮助我更好地理解我的问题。
我有两个pandas数据帧,在这个例子中简化了,它们是:
df1 =
'CENSUS_ID'
60014001001
60014002001
df2 =
'GEO_ID' 'MED_INCOME'
60014001001 177417
60014002001 166313
60014002002 132400
60014003001 161964我想在df1中添加一个名为'MED_INCOME‘的列,方法是在df2中查找匹配的GEO_ID并返回'MED_INCOME’值。虽然这些数据帧被简化了,但df1的实际镜头可能有几百行长,而df2的镜头可能有数万行长。因此,虽然我可以很容易地将其设置为遍历以查找匹配项,但它并不理想,因为它非常慢。我想使用pandas apply(),因为它似乎要快得多,或者可能还有其他解决方案,但我很难弄清楚其中的逻辑,因为仍然有很多我不熟悉或不知道的熊猫“技巧”。也许从df2中删除不匹配的列比添加到df1中更容易,但我就是不知道。任何帮助都是非常感谢的。
发布于 2019-01-22 06:23:50
您可以进行左合并(左外部联接)。这将保留df1中的所有观察值,同时将其与df2中的GEO_ID进行匹配
df1.merge(df2, left_on='CENSUS_ID', right_on='GEO_ID', how='left')https://stackoverflow.com/questions/54298535
复制相似问题