2012-05-11 48 views
12

我正在尝试创建一个熊猫DataFrame,它对单个文件工作正常。如果我需要为具有相同数据结构的多个文件构建它。所以,而不是单个文件名我有一个文件名列表,我想创建DataFrame从多个文件创建熊猫数据帧

不知道在熊猫中追加到当前DataFrame的方式是什么,或者是否有一种方法可以让大熊猫吸取文件列表为DataFrame

回答

21

熊猫concat命令是你的朋友在这里。比方说,你有一个目录中的所有文件,targetdir。您可以:

  1. 使文件的列表
  2. 加载它们作为大熊猫dataframes
  3. 并串连在一起

`

import os 
import pandas as pd 

#list the files 
filelist = os.listdir(targetdir) 
#read them into pandas 
df_list = [pd.read_table(file) for file in filelist] 
#concatenate them together 
big_df = pd.concat(df_list) 
+0

Glob将是完美的第一步。您可以使用通配符生成文件列表。 – thecircus

+1

在我的用例中,我需要执行'pd.concat(df_list,ignore_index = True,axis = 1)',因为每个csv文件都代表一列 – zje

1

我可能会尝试连接文件,然后再将它们送入熊猫。如果你在Linux或Mac上,你可以使用cat,否则一个非常简单的Python函数可以为你完成这项工作。

+0

当然..只是好奇,如果有是一种在不结合所有文件的情况下做到这一点的方法。感谢您的快速回复Jose – Abhi

0

这些文件是否为csv格式。你可以使用read_csv。 http://pandas.sourceforge.net/io.html

一旦您已经阅读这些文件,并将其保存两个dataframes,你可以合并两个dataframes或添加更多的列到两个dataframes(假设普通指数)中的一个。熊猫应该能够填写缺失的行。

3

潜在的效率极其低下,但...

为什么不使用read_csv,建立两个(或更多)dataframes,然后用加入把它们放在一起?

也就是说,如果您提供了一些数据或您迄今使用的一些代码,回答您的问题会更容易。