用pandas读取python中的csv文件

2024-09-29 23:18:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,可以将几个.csv文件聚合成一个。当我执行添加3个相同结构的文件(列的数量和名称)时,它会传递一条成功消息,通知3个文件已合并到总共1154341行中。当我添加另一个相同结构的文件时,消息将更新为四个文件和1446553行。到现在为止,一直都还不错。当我使用pandas读取它们时(pd.read\u 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: Columns (1,2,3,4,5,8,10,11,12,13,15,22,23,28) have mixed types.

当我读取较小的文件时,这个消息只涉及第1列。所以我想知道这个问题是pandas的限制还是数据有问题,以及如何解决它


Tags: 文件ofcsv数据name消息pandasdf
1条回答
网友
1楼 · 发布于 2024-09-29 23:18:40

This excellent answer非常全面地介绍了数据类型警告。在读取时指定数据类型

至于索引的大小出乎意料:

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

相关问题 更多 >

    热门问题