python - 有没有办法用数据框中另一列的值替换空值?
问题描述
我正在使用具有许多缺失值的数据框。我正在寻找替换缺失值的有效方法。以下是数据框的示例:
s/n Name Home_Zip work_zip Family_zip
1 John 56729 N/A 836AB
2 sawn N/A N/A 73836
3 Michael N/A 839CD 83093
4 Nathan 93932 78393 N/a
5 Jack N/A N/A N/A
在这里,我想以Home_Zip
一种首先查找的方式填充缺失值,work_zip
如果它不为 null,则返回该值,否则返回family_zip
. 如果在所有值都为 null 的情况下,则返回未知。
s/n Name Home_Zip work_zip Family_zip
1 John 56729 N/A 836AB
2 sawn 73836 N/A 73836
3 Michael 839CD 839CD 83093
4 Nathan 93932 78393 N/a
5 Jack Unkown N/A N/A
解决方案
您可以使用bfill
后跟fillna()
.
df['Home_Zip'] = df.iloc[:, 2:].bfill(1).fillna('Unknown')['Home_Zip']
或链几个fillna
:
df['Home_Zip'] = (df['Home_Zip'].fillna(df['work_zip'])
.fillna(df['Family_zip'])
.fillna('Unknown')
)
输出:
s/n Name Home_Zip work_zip Family_zip
0 1 John 56729 NaN 836AB
1 2 sawn 73836 NaN 73836
2 3 Michael 839CD 839CD 83093
3 4 Nathan 93932 78393 N/a
4 5 Jack Unknown NaN NaN
推荐阅读
- java - 不使用 com.sun 包
- android - Android CVE 检查
- c# - 生成随机 UDID
- javascript - 为什么我的模态体中没有值传递?
- react-native - React Native:如何组合内联元素以便将它们包装在一起
- python - 将 using 语句从 c# 转换为 python
- r - 相当于 purrr::map 中的 `break`
- python - ValueError:时间数据与格式不匹配(将部分字符串转换为时间)
- python - 一致地使用平均值添加对象
- python - matplotlib set_rmax 和 set_rticks 不起作用