我的数据框中有一列名为“Rank”,我需要将所有值“N.A.”替换为 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 "N.A. " at position 1514
预期输出:
index Rank
0 100000
1 0
2 120000
3 0
我不知道接下来要做什么,感谢您的帮助!
答案 0 :(得分:0)
如果您只替换列 'N.A. '
的 Rank
值,您可以直接编写以下内容:
df['Rank'] = df['Rank'].replace('N.A.','0')
答案 1 :(得分:0)
最简单的解决方案是使用普通替换:
df['Rank'] = df['Rank'].replace({'N.A. ': 0})
但如果您有理由使用正则表达式(例如,去除“N.A.”周围的空格),您可以:
df['Rank'] = df['Rank'].replace(regex={r' *N\.A\. *': 0})
答案 2 :(得分:0)
单行 -
import numpy as np
df['Rank'].replace('N.A. ', np.NaN).fillna(0)
答案 3 :(得分:0)
df['Rank'].str.replace('N.A.', '0')
使用您的示例数据框对我有用。
在你的命令中
df['Rank '].str.replace('N.A. ','0')
你有
Rank
中 df['Rank ']
后的空格,N.A.
中 replace('N.A. ','0')
后面的一个空格。也许这就是问题所在。