使用Python替换数据帧中的值

使用Python替换数据帧中的值,python,pandas,dataframe,Python,Pandas,Dataframe,想要用“ROE”列中百分比大于100的“NaN”替换值。正在读取csv文件。以下是代码,不确定如何在“缺失”数据框中赋值,请帮助 **数据集中的ROE列包含“25.00%”、“130.00%”、“50.00%”等值。因此,在比较时,首先需要通过删除最后一个字符来转换浮点值 missing = pd.read_csv(local_path + "/Week4/Datasets_Week4/roemissing.csv") print(missing) for x in missing["ROE"

想要用“ROE”列中百分比大于100的“NaN”替换值。正在读取csv文件。以下是代码,不确定如何在“缺失”数据框中赋值,请帮助

**数据集中的ROE列包含“25.00%”、“130.00%”、“50.00%”等值。因此,在比较时,首先需要通过删除最后一个字符来转换浮点值

missing = pd.read_csv(local_path + "/Week4/Datasets_Week4/roemissing.csv")
print(missing)

for x in missing["ROE"]:
    y = float(x[:-1])
    if y>100:
        print(x.index)
使用以下命令:

missing['ROE'] = missing['ROE'].str[:-1].astype(int)
missing.loc[missing.ROE > 100, 'ROE'] = np.nan
missing.ROE>100
将选择
ROE
值大于
100
的行“ROE”是需要替换所选行的值的列名


选择
ROE
值大于
100
的所有行,然后将
NaN
值设置为
ROE
列中所选行的
ROE

使用
pd.Series.mask
。以下内容将就地更新数据帧
df

df.update(df.ROE.mask(pd.to_numeric(df.ROE.str[:-1]) > 100))

在dataset中,ROE列包含“28.00%”、“120.00%”等值。。。不是浮点值。所以“>”操作符不起作用。需要通过删除最后一个字符将第一个类型转换为浮动。无法做到这一点,我尝试了下面的代码“missing.loc[float(missing.ROE[:-1])>100,'ROE']=np.nan”。它抛出一个错误“无法将序列转换为”,我建议将第一行替换为
缺少['ROE']=缺少['ROE'].str.strip('%')
,并使用
pd.to\u numeric