【发布时间】:2021-12-02 08:39:57
【问题描述】:
这是我可以使用 XLOOKUP 函数在 Excel 中轻松复制的内容,但我正在尝试使用 pandas 来完成。
我有 2 个数据框,这样说:
df1
|first_name | last_name | dob | value |
| Goku | Saiyan | 1/1/2021 | |
| Vegetta | Super | 8/7/1990 | |
| Gohan | Son | 4/20/1969| |
df2
|first_name | last_name | dob | value |
| Goku | Saiyan | 1/1/2021 | 50 |
| Vegetta | Super | 8/7/1990 | 92 |
| Gohan | Son | 4/20/1969| 31 |
| Trunks | Donald | 7/1/1921 | 49 |
| New Name | Another | 1/31/1992| 67 |
我想用 df2 中的 value 列填充 df1 中的 value 列。
我不能使用combine_first,因为数据框有不同的索引和不同的大小。
如果我使用pd.merge,那么我会得到value_x 和value_y,其中value_y 有我想要的数据,但我需要做更多的处理才能将它放在我想要的df1['value'] 上
我基本上想匹配两个数据帧上的名字、姓氏和出生日期,并从 df2 接收value。
这可能是一个简单的问题,但我一直在努力使用我尝试过的不同方法,我认为我一定缺少一些东西,因为它不应该那么复杂。
任何帮助将不胜感激。
【问题讨论】:
-
我认为您的 pd.merge 方法是最好的选择。您可以简单地从 df2 中删除不需要的列,进行合并(设置 copy=False),然后使用 pd.where 填充缺失值。您必须在最后删除额外的“价值”列,但这只是一列并不可怕。