【问题标题】:Convert string to float pandas将字符串转换为浮点熊猫
【发布时间】:2017-10-15 18:37:12
【问题描述】:

简单问题:我有一个从 csv 文件导入的数据集,其中包含一个带有数值的字符串列。逗号后面是小数位。

我想转换成浮点数。基本上就是这样:

x = ['27,10083']
df = pd.DataFrame(x)
df.astype(float)

为什么这不起作用以及如何解决这个简单的问题?

提前致谢。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    用replace分配输出:

    df = df.replace(',','.', regex=True).astype(float)
    

    如果要指定转换列:

    cols = ['col1','col2']
    df[cols] = df[cols].replace(',','.', regex=True).astype(float)
    

    另一种解决方案是在read_csv 中使用参数decimal=',',然后将列正确解析为浮点数:

    df = pd.read_csv(file, decimal=',')
    

    【讨论】:

    • 非常感谢,在 csv 导入中使用了小数点=',',太好了。
    • 我在read_csv 中使用以下参数:`skiprows=9, sep=None, decimal=',', engine='python'`` 然后小数不起作用。知道为什么吗?
    猜你喜欢
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2017-10-25
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多