【问题标题】:Pythons Pandas - Converting Str object values in a column to FloatPythons Pandas - 将列中的 Str 对象值转换为浮点数
【发布时间】:2021-05-25 08:42:44
【问题描述】:

我有一个数据框,该数据框当前包含一列存储为字符串(对象)的收入数据。但是,当我使用时,我想将其转换为浮动:

df['Income'] = pd.to_numeric(df['Income_2016'], errors='coerce')

并使用 df.dtypes,Income 是 float64,但是当我显示 df 时,以前的 str 数字值现在变成了 NaN。

转换前:

Index Income
1 100,516
2 101,551

转换后:

Index Income
1 NaN
2 NaN

如何在不将原始值转换为 NaN 的情况下将其转换为浮点数?

【问题讨论】:

  • 用点替换逗号

标签: python pandas dataframe


【解决方案1】:

去掉逗号

试试:

df['Income'] = pd.to_numeric(df['Income_2016'].str.replace(',',''), errors='coerce')

【讨论】:

    【解决方案2】:

    试试,

    df['Income'] = df.Income_2016.apply(lambda price:float(price.replace(",","")))
    

    【讨论】:

    • 社区encourages 在代码旁边添加解释,而不是纯粹基于代码的答案。正如here 所解释的那样:“虽然此代码可能会回答问题,但提供有关 为什么 和/或 如何 此代码回答问题的附加上下文会提高其长期价值。 "
    猜你喜欢
    • 2021-08-11
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2021-07-20
    • 1970-01-01
    • 2021-06-24
    相关资源
    最近更新 更多