NL2*_*des 2 python indexing concatenation pandas
很难以清晰和准确的方式表达这个问题,所以希望下面的内容有助于更多地阐明我的问题。
我有两个 pandas 数据框,对此示例进行了简化,它们是:
df1 =
'CENSUS_ID'
60014001001
60014002001
df2 =
'GEO_ID' 'MED_INCOME'
60014001001 177417
60014002001 166313
60014002002 132400
60014003001 161964
Run Code Online (Sandbox Code Playgroud)
我想通过在 df2 中查找匹配的 GEO_ID 并返回“MED_INCOME”值,向 df1 添加一个名为“MED_INCOME”的列。虽然这些数据帧经过简化,但 df1 的实际 len 可能有数百行长,而 df2 的实际 len 则有数万行长。因此,虽然我可以轻松地将其设置为迭代以查找匹配项,但它并不理想,因为它非常慢。我想使用 pandas apply() 因为它似乎要快得多,或者也许还有另一种解决方案,但我很难弄清楚逻辑,因为我仍然有很多 pandas “技巧”新的或不知道的。也许从 df2 中删除不匹配的列比添加到 df1 更容易,但我只是不知道。任何帮助表示赞赏。
您可以进行左合并(左外连接)。这将保留所有观察结果 in ,df1同时将其与GEO_IDin匹配df2:
df1.merge(df2, left_on='CENSUS_ID', right_on='GEO_ID', how='left')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2100 次 |
| 最近记录: |