将多个类似的CSV文件连接成一个大数据帧

时间:2014-03-11 05:48:40

标签: python csv pandas

我有一个目录,其中只有我想要使用的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文件。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

如其他答案中所述,您需要使用完整路径而不是本地路径。

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

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