python - python:替换熊猫中多列中的值
问题描述
import pandas as pd
df = pd.DataFrame([[1,2, 3, 'www', 'abc'],[4,5,6, 'ppp', 'def'], [6,7,8, 'qqq', 'ggg'], [11,22,33, 'fff', 'mmm']], columns=['A', 'B', 'C', 'D', 'E'])
d = {'www': 'www_replaced', 'def': 'def_replaced', 'fff': 'fff_replaced' }
df.replace(d, value=None, inplace=True)
因此,dataframe
相应地更新:
>>> df
A B C D E
0 1 2 3 www_replaced abc
1 4 5 6 ppp def_replaced
2 6 7 8 qqq ggg
3 11 22 33 fff_replaced mmm
>>>
但是,我想在 D 和 E 列上使用map()
函数,pandas
原因有两个:
- 我读到一般来说
map
更快replace
- 我可以做这样的事情:
df[column] = df[column].map(d).fillna('Unknown')
我可以运行两次,例如:
df['D'] = df['D'].map(d).fillna('Unknown')
df['E'] = df['E'].map(d).fillna('Unknown')
但是有没有办法map
在一个命令中更改多列中的值?
解决方案
推荐阅读
- javascript - jQuery - 如何在 DOM 底部添加一个新的 div
- c++ - 需要解释代码中的移位语法 - C++
- qt - 如何在 qbs 项目中设置 qrc 压缩设置?
- javascript - Typescript - 使用严格标志迁移 JS 代码
- solr - 如何在 SolrJ - CloudSolrClient 中进行 BasicAuthentication?
- angular - ASP Core PatchDocument 返回无效输入
- c# - Superpower:仅当字符串开始一行时才将字符串与标记器匹配
- c# - 指定的强制转换无效 - bigint 到 long - C#
- c# - 如何检测哪个对象正在运行脚本
- android - 如何在同一活动中显示网站?