python - 如何根据条件从一个 pandas 数据框中提取数据并将其添加到另一个 pandas 数据框中?
问题描述
我有两个数据框 - DF1 和 DF2。两者都有一个“ID”列。
如何根据行中的“ID”值将 DF1 中不同列的值复制到 DF2 中具有相同“ID”的相应行?
简而言之,我想我正在尝试在 Python Pandas 中复制 Microsoft Excel 中的 VLOOKUP 功能。
解决方案
DataFrame.join()
可以与VLOOKUP
. 它将第一列dataframe
与第二列的索引连接起来dataframe
。
测试代码:
df1 = pd.DataFrame({'ID': ['A', 'B', 'C', 'D', 'E']})
df2 = pd.DataFrame({'ID': ['B', 'C', 'D'],
'Column': [1, 2, 3]})
df1.join(df2.set_index('ID')['Column'], on='ID')
测试结果 :
df1.join(df2.set_index('ID')['Column'], on='ID')
Out[2]:
ID Column
0 A NaN
1 B 1.0
2 C 2.0
3 D 3.0
4 E NaN
推荐阅读
- c - 在 32 位机器中存储临时 64 位变量
- php - 如何从 php 中的不同函数添加两个单独的变量?
- c++ - 如何使用 fmt 库而不获取“架构 x86_64 的未定义符号”
- wordpress - 随机订单的状态从 wordpress woocommerce 网站中的“处理”自动更改为“已完成”
- actions-on-google - 我在调用操作时获得的显示名称的访问权限是什么?
- php - 通过嵌套的特定多维数组键从 php 数组中删除重复项
- angular - 如何将 %3F 解码为“?” 和 %3D 到 '=' 角度 7?
- javascript - Javascript Regexp替换多个字符串匹配另一个对象文字的属性名称
- angular - Angular 材质 html 看起来很有趣,如何正确渲染
- java - 在 Java Sqlite 中使用 IS NULL 的可选参数查询未按预期工作