python - 将系列中的值映射到列上以替换 nan 值 pandas
问题描述
我有一个 DataFrame,其中包含工作编号和与该工作相关的客户姓名。在某些情况下,工作编号没有客户名称,因此为空。我有一个单独的系列,其中将这些工作编号作为索引,缺少的客户姓名根据工作编号替换空值。我不完全确定如何将其映射到原始 DataFrame 列。
这是原始数据帧(df):
Job Number Customer
0 02123 Paul F
1 46456 nan
2 56823 Kevin T
3 62948 nan
替换 nan 值的系列:
Job Number
46456 Kara L
62948 Sabrina M
Name: Customers, dtype: object
我需要的最终输出是:
Job Number Customer
0 02123 Paul F
1 46456 Kara L
2 56823 Kevin T
3 62948 Sabrina M
我希望这是有道理的。我看过其他答案,例如 using:df['Customer'] = df['Job Number'].map(customers)
但这不起作用或test['Customer'] = df['Customer'].combine_first(df['Customer'].map(customers))
.
我不确定如何将代码粘贴到这里,所以我手工写出了 df 和 series。
任何帮助将不胜感激。
解决方案
您可以reset_index
使用combine_first
:
(df.set_index('JobNumber').squeeze()
.combine_first(customers.set_index('Job').squeeze())
.reset_index())
index Customer
0 2123 Paul F
1 46456 Kara L
2 56823 Kevin T
3 62948 Sabrina M
推荐阅读
- java - Firebase:60 秒后删除数据
- python - 如何合并具有多个条件/列的数据框
- ios - 如何在 Sprite Kit 中计算力矢量以应用于我的物理体?
- c# - 基于 Microsoft Bot Framework 连接到本地 echo bot 的离线直连路由
- java - Cucumber 升级后运行测试的问题
- php - 多对多原则:用户喜欢这篇文章吗?
- javascript - 如果返回 false,则返回平衡括号
- reactjs - onPress 不触发功能
- python - xarray 中的时间相关元数据
- html - 我的 Div 不响应位置:绝对容器 Div 设置为位置:相对