【问题标题】:Scrapy - Getting nan when getting data from a CSVScrapy - 从 CSV 获取数据时获取 nan
【发布时间】:2020-06-19 17:16:28
【问题描述】:

这是我的代码 sn-p 从 CSV 获取我需要的数据:

            pathName = 'pathName'
            export = pd.read_csv(pathName, skiprows = [0], header = None)
                #pathName: Find the correct path for the file
                #skiprows: The first row is occupied for the title, we dont need that
            omsList = export.values.T[1].tolist() #Transpose the matrix + get second path
            for omsID in omsList:
                productOMS = omsID

这就是我如何产生所说的项目:

item['productOMS'] = productOMS
yield item

这是我要从中获取数据的列

当我运行我的蜘蛛时,我得到 nan 作为 omsID 的输出,经过研究我发现这意味着不是数字。这是有道理的,因为我认为它们会被视为字符串,所以我将如何调整我的程序以将这些数据字段识别为字符串而不是整数或将它们读入整数?

【问题讨论】:

    标签: python excel csv scrapy


    【解决方案1】:

    您需要使用 python 类型转换/强制转换 - 即 int(my_numerical_string) 告诉 python 将文本解释为整数。您也可以使用type(my_var) 找出变量的类型

    【讨论】:

    • 得到错误:ValueError: cannot convert float NaN to integer when I did productOMS = int(omsID) 然后我又试了 productOMS = float(omsID) got nan
    • 您想将其转换为float,就像productOMS = float(omsID)这样的浮点数
    • 我做了,它返回了 nan
    • 忽略...我认为这是您的问题stackoverflow.com/questions/47333227/… - 您的 csv 数据中有漏洞吗? (空单元格)
    • 我尝试了一些链接的变体,我会得到错误 float object has no attribute [] 我尝试通过设置值来修复它以创建一个 int 和一些其他返回相同错误的东西代码
    【解决方案2】:

    这是一个我没有预见到的愚蠢问题。我必须在 excel 中增加目标列的宽度,以便实际读取值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多