【问题标题】:Pandas read_csv import my numeric data as str?Pandas read_csv 将我的数字数据导入为 str?
【发布时间】:2022-01-19 13:28:56
【问题描述】:

我使用 pandas 读取 csv 填充的数字数据,如下所示:

-9999;-11,558;-0,692;0,005;0,001;-1
-9999;-3,32;1,054;5,317;0;-1
...

我用这行代码导入:

data = pd.read_csv(file, usecols = [0,1,2,3,4], sep = ";", header=None)

结果是我的所有数据框都被我转换为字符串 ex: '3,4' 的数字填充

我尝试将 ,dtype=float 添加到我的 pd.read_csv 行,但出现此错误:

ValueError: could not convert string to float: '5,04'

!!??

【问题讨论】:

    标签: python pandas csv pandas-datareader


    【解决方案1】:

    参数decimal=","thousands="."在文档中有描述。他们可以提供帮助

    https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html

    data = pd.read_csv(file, usecols = [0,1,2,3,4],delimiter=";", decimal=",",thousands=".", header=None)
    

    https://stackoverflow.com/a/70748012/6889858中妥善解决

    【讨论】:

      【解决方案2】:

      你应该写5.04,小数点是必需的,如果它不在数字中,它将被视为tuple

      【讨论】:

        【解决方案3】:

        您的数字中的小数点是逗号。您应该将decimal=',' 作为参数传递给pandas.read_csv()

        来自the docs

        decimalstr,默认为'.'

        Character to recognize as decimal point (e.g. use ‘,’ for European data).
        

        【讨论】:

          猜你喜欢
          • 2015-02-16
          • 2020-04-28
          • 1970-01-01
          • 2022-01-12
          • 2016-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-27
          相关资源
          最近更新 更多