我有一个程序,可以将几个.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的限制还是数据有问题,以及如何解决它
This excellent answer非常全面地介绍了数据类型警告。在读取时指定数据类型
至于索引的大小出乎意料:
.read_csv
kwargindex_col
没有正确地解释可能是罪魁祸首的pandas
,您可以使用它李>read_csv
读取的行数是否正确,是否没有一堆空行,等等李>相关问题 更多 >
编程相关推荐