希望在“ROE”列中用“NaN”替换值,其中百分比大于100。阅读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)
答案 0 :(得分:1)
使用以下内容:
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
列中的选定行。
答案 1 :(得分:1)
使用pd.Series.mask
。以下内容将更新数据框df
。
df.update(df.ROE.mask(pd.to_numeric(df.ROE.str[:-1]) > 100))