【问题标题】:Concatenate multiple similar CSV files into one big dataframe将多个相似的 CSV 文件连接到一个大数据帧中
【发布时间】:2014-03-11 05:48:40
【问题描述】:

我有一个目录,其中只有我想要使用的 CSV 文件。我想连接所有这些 CSV 文件并创建一个更大的文件。我尝试了一种代码,但没有成功。

import os
import pandas as pd

targetdir = r'C:/Users/toshiba/Documents/ICF2011/Base Admision San Marcos 2014-2/Sabado'

filelist = os.listdir(targetdir) 

big_df=pd.DataFrame()
for file in filelist :
    big_df.append(pd.read_csv(file), ignore_index=True)

我运行代码并显示一条消息:IOError: File A011.csv does not exist。 这是矛盾的,因为A011.csv 是我使用的目录中的第一个 CSV 文件。

【问题讨论】:

    标签: python csv pandas


    【解决方案1】:

    listdir 只返回文件名,而不是完整路径。要获得完整路径,您需要加入 targetdirfile(错误的变量名称,因为它掩盖了 file 类型)。此外,您必须捕获 .append 的结果,因为它返回一个新对象,而不是原地追加。

    for filename in filelist:
        big_df = big_df.append(pd.read_csv(os.path.join(targetdir, filename), ignore_index=True)
    

    【讨论】:

      【解决方案2】:

      正如另一个答案中提到的,您需要使用完整路径,而不是本地路径。

      我建议使用concat 而不是append,因为这样你就不会制作很多中间帧:

      big_df = pd.concat(pd.read_csv(os.path.join(targetdir, filename),
                                     ignore_index=True)
                         for filename in filelist)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 2021-10-24
        • 1970-01-01
        相关资源
        最近更新 更多