微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多个 .csv 文件的串联在 python 上没有给出所需的结果

如何解决多个 .csv 文件的串联在 python 上没有给出所需的结果

我总共有 24 个 .csv 文件,每个文件有 3 列和多行(准确地说是 15677 个,它们被分成这 24 个文件),其中包含我需要读取的数据。 我想按时间顺序访问和阅读这些数据文件。 起初我试图连接这些文件,但由于某种原因,我获得了一个具有 [15653 行 x 72 列] 的矩阵,但实际上它应该是 [15677 行 x 3 列](因为所有 .csv 文件都有 3 列,当将包含的数据行相加,总计为 15677)。

这是我到目前为止所做的事情,使我得到了我提到的结果:

import glob
import os
import pandas as pd 
df = pd.concat(map(pd.read_csv,glob.glob(os.path.join('',"media/BIWI/*.csv"))))
print(df)

正在使用的文件https://drive.google.com/drive/folders/19z-OcHRXmTO8VX-Bj8NuOJGJROURLJwt?usp=sharing

解决方法

当您使用 pd.read_csv() 而不提供列名时,csv 文件的第一行将用作列标题。这样,您将丢失 24 行,剩下 15677-24 = 15653 行。由于生成的 DataFrame 具有不同名称的列,因此 pd.concat() 会生成一个包含所有这些列(以及许多 NaN 值)的 DataFrame。这占 72=3*24 列。要解决此问题,您可以将 pd.read_csv()names 参数一起使用,并将列名列表分配给它。或者,您可以将 pd.read_csv()header=None 结合使用来指示 csv 文件没有标题行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。