pandas - 如何更新熊猫中的多列
问题描述
我有 DF 有 5 列。3列是字符类型,其他是数字类型。我想更新字符类型列的缺失值是“缺失的”。
我已经写了如下的更新声明,但它不起作用。
df.select_dtypes(include='object') = df.select_dtypes(include='object').apply(lambda x: x.fillna('missing'))
只有当我指定列名时它才有效。
df[['Manufacturer','Model','Type']] = df.select_dtypes(include='object').apply(lambda x: x.fillna('missing'))
你能告诉我如何更正我的第一个更新声明吗?
解决方案
这里df.select_dtypes(include='object')
返回 new DataFrame
,所以不能像第一个答案那样分配,可能的解决方案是使用DataFrame.update
(就地工作),apply
这里也没有必要。
print (df)
Manufacturer Model Type a c
0 a g NaN 4 NaN
1 NaN NaN aa 4 8.0
df.update(df.select_dtypes(include='object').fillna('missing'))
print (df)
Manufacturer Model Type a c
0 a g missing 4 NaN
1 missing missing aa 4 8.0
或者使用 s 获取列名,string
例如:
cols = df.select_dtypes(include='object').columns
df[cols] = df[cols].fillna('missing')
print (df)
推荐阅读
- angular - 如何以角度创建假悬停?
- django - 如何将 Pug/Jade 与 Django 条件和 html 元素属性混合?
- c# - 将 json 字符串写入一个 .csv 列
- delphi - Delphi - 如何实现自定义超时
- react-native - 如何将菜单列表从 API 传递给 Custom DrawerNavigator?
- media - Hoy 为 Xenforo 中的某些媒体类别添加 noindex 标签
- javascript - 当点不显示时如何将菜单按钮转换为白色?
- node.js - 带有节点 XADD 的 Redis 流
- c++ - 如何使用 mingw-w64 构建具有链接时间优化的 Qt?
- xml - 检索添加到项目的自定义字段中的值列表