【问题标题】:reading csv file in python with pandas用熊猫在python中读取csv文件
【发布时间】:2019-05-28 22:06:56
【问题描述】:

我有一个程序可以将多个 .csv 文件聚合为一个。当我执行添加 3 个相同结构的文件(列的数量和名称)时,它会传递一条成功消息,通知 3 个文件已加入总共 1154341 行。当我添加另一个相同结构的文件时,消息更新为四个文件和 1446553 行。到目前为止,一切都很好。当我使用 pandas 读取它们时(pd.read_csv (file.csv)),这两个文件大小相同,文件大小越小。当我分析单个列时,请注意两个数据框的索引差异:

 #Union of 3 .csv files
 >>>df_reembolsos_1['ideCadastro']
 0               NaN
 1               NaN
 2               NaN
 ...................
 1154338    195997.0
 1154339    195997.0
 Name: ideCadastro, Length: 1154339, dtype: float64



 # Union of 4 .csv file
 >>> df_reembolsos_2['ideCadastro]
 0               NaN
 1               NaN
 2               NaN
 ...................
 1446550    195997
 1446551    195997
 Name: ideCadastro, Length: 1154339, dtype: object

让我印象深刻的是,在读取第一个文件时,索引的数量等于大小,而在第二种情况下,索引的数量大于大小。我查看了这两个文件,它们确实不同,并且具有连接不同文件编号的预期大小。我注意到的一个区别是读取较大文件时出现以下警告消息:

DtypeWarning:列 (1,2,3,4,5,8,10,11,12,13,15,22,23,28) 具有混合类型。

当我阅读较小的文件时,此消息仅涉及第 1 列。所以我想知道这个问题是熊猫的限制还是数据有问题,我该如何解决。

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    This excellent answer 相当彻底地涵盖了 DtypeWarning。在读取时指定您的 Dtype。

    关于意外大小的索引:

    1. 追加时,可以忽略索引。
    2. 在阅读时,您可以使用 .read_csv kwarg index_col -- 如果 pandas 没有正确解释这可能是罪魁祸首。
    3. 检查 read_csv 是否真的读取了正确的行数,是否有一堆空行等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 2017-10-27
      • 2023-01-16
      • 2015-03-30
      • 2013-03-23
      相关资源
      最近更新 更多