从多个文件创建pandas数据帧

时间:2012-05-11 05:36:57

标签: python pandas

我正在尝试创建一个pandas DataFrame,它适用于单个文件。如果我需要为具有相同数据结构的多个文件构建它。因此,我有一个文件名列表而不是单个文件名,我想从中创建DataFrame

不确定在pandas中附加到当前DataFrame的方法是什么,或者有没有办法让pandas将文件列表吸入DataFrame

5 个答案:

答案 0 :(得分:26)

pandas concat命令是你的朋友。假设您拥有目录targetdir中的所有文件。你可以:

  1. 制作文件列表
  2. 将它们加载为pandas dataframes
  3. 并将它们连接在一起
  4. `

    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)
    

答案 1 :(得分:3)

可能非常低效但......

为什么不使用read_csv来构建两个(或更多)数据帧,然后使用join将它们组合在一起?

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

答案 2 :(得分:1)

我可能会尝试在将文件提供给pandas之前连接这些文件。如果您使用的是Linux或Mac,则可以使用cat,否则一个非常简单的Python函数可以为您完成这项任务。

答案 3 :(得分:0)

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

读完文件并将其保存在两个数据框中后,您可以合并两个数据框或将其他列添加到两个数据框之一(假设是公共索引)。熊猫应该能够填补缺失的行。

答案 4 :(得分:0)

// Move this to where you declare viewModel
val viewModel: ViewBreederViewModel by viewModels()

viewModel.strainList.observe(viewLifecycleOwner) { strainList ->
  // use your updated list
}