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()
withnames
参数并将列名列表分配给它。或者,您可以使用pd.read_csv()
withheader=None
来指示 csv 文件没有标题行。
推荐阅读
- flutter - 颤振检查列表按项目包含
- r - flexdashboard ::renderValueBox 在闪亮的应用程序中不起作用
- python - python numpy:行向量转置
- javascript - 如何添加自定义标签标题
- ssh - SSH 超时失败
- python - 登录页面上的 Django allauth 和 google recaptcha - 有什么好的解决方案吗?
- macos - 如何使用 Apple 脚本选择特定的应用程序窗口?
- reactjs - axios如何从圆括号内获取数据
- regex - bash 在下载页面上下载第一个匹配的正则表达式
- javascript - 串联继承具有相同签名的两个方法