使用Python替换数据帧中的值
想要用“ROE”列中百分比大于100的“NaN”替换值。正在读取csv文件。以下是代码,不确定如何在“缺失”数据框中赋值,请帮助 **数据集中的ROE列包含“25.00%”、“130.00%”、“50.00%”等值。因此,在比较时,首先需要通过删除最后一个字符来转换浮点值使用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"
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
。