python - 如何用正则表达式替换熊猫列的“NA”?
问题描述
我的数据框中有一列名为“Rank”,我需要将所有值“NA”替换为 0。每次使用 replace 时都会出现错误。
数据框看起来像:
index Rank
0 100000
1 N.A.
2 120000
3 N.A.
这是我尝试过的代码:
import pandas as pd
df['Rank'] = df['Rank'].replace({'\\N.A. ': '0'}, regex=True)
错误:re.error:在位置 2 缺少 {
import pandas as pd
df['Rank'].str.replace('N.A. ','0')
这给了我错误: ValueError: Unable to parse string "NA" at position 1514
预期输出:
index Rank
0 100000
1 0
2 120000
3 0
我不知道下一步该怎么做,任何帮助表示赞赏!
解决方案
最简单的解决方案是使用普通替换:
df['Rank'] = df['Rank'].replace({'N.A. ': 0})
但是,如果您有某些理由使用正则表达式(例如,去掉 'NA' 周围的空格),您可以在这里:
df['Rank'] = df['Rank'].replace(regex={r' *N\.A\. *': 0})
推荐阅读
- github - 如何使用graphql按更新日期过滤github拉取请求?
- mysql - Oracle同步中的Varchar(20字节)到Mysql varchar(20)?
- c - 读取文件时使用 fgets() 忽略换行符
- javascript - TextInput 样式问题 - CSS - React Native
- python - 在 OpenCV 中用轴绘制图像
- analytics - Amplitude & Segment.io - Saas 产品分析 - 如何获得所有用户
- python - 程序不将字符串与文本文件中的单词匹配
- ruby-on-rails - 期望同一类的多个 Rails 活动作业以不同的参数排队
- android - 如何使用 logb 将 android 数学函数转换为 swift
- python - 使用正则表达式替换文件中的子字符串和python