使用Python替换数据框中的值

时间:2018-02-18 03:58:56

标签: python pandas dataframe

希望在“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)

2 个答案:

答案 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))