我在数据集中有一列关于公司规模的分类,目前看起来像this,其中的'-'连字符当前代表缺失的数据:
我想用空值更改缺失值中的'-',以便我可以分析缺失数据。但是,当我将pd替换工具(请参见以下代码)与None值一起使用时,它似乎也会生成任何真正的条目,因为它们也包含连字符(例如51-200)。
df['Company Size'].replace({'-': None},inplace =True, regex= True)
我如何只替换单独的连字符,而保持其他条目不变?
答案 0 :(得分:2)
您无需使用regex = True。
df['Company Size'].replace({'-': None},inplace =True)
答案 1 :(得分:0)
您可以这样做
import numpy as np
import pandas as pd
df = pd.DataFrame({'A': [0, 1, 2, 3, 4],
'B': [5, 6, 7, 8, 9],
'C': ['a', '-', 'c--', 'd', 'e']})
df['C'] = df['C'].replace('-', np.nan)
df = df.where((pd.notnull(df)), None)
# can also use this -> df['C'] = df['C'].where((pd.notnull(df)), None)
print(df)
输出:
A B C
0 0 5 a
1 1 6 None
2 2 7 c--
3 3 8 d
4 4 9 e
另一个示例:
df = pd.DataFrame({'A': [0, 1, 2, 3, 4],
'B': ['5-5', '-', 7, 8, 9],
'C': ['a', 'b', 'c--', 'd', 'e']})
df['B'] = df['B'].replace('-', np.nan)
df = df.where((pd.notnull(df)), None)
print(df)
输出:
A B C
0 0 5-5 a
1 1 None b
2 2 7 c--
3 3 8 d
4 4 9 e
答案 2 :(得分:0)
您也可以这样做:
df['column_name'] = df['column_name'].replace('-','None')