Создание фрейма данных pandas из нескольких файлов
Я пытаюсь создать pandas DataFrame
, и он отлично работает для одного файла. Если мне нужно построить его для нескольких файлов, которые имеют одинаковую структуру данных. Поэтому вместо одного имени файла у меня есть список имен файлов, из которых я хотел бы создать DataFrame
.
Не знаете, как добавить к текущему DataFrame
в pandas или есть способ для pandas сосать список файлов в DataFrame
.
Ответы
Ответ 1
Команда pandas concat
- ваш друг здесь. Допустим, у вас есть все ваши файлы в каталоге, targetdir. Вы можете:
- составить список файлов
- загружать их как pandas dataframes
- и объединить их вместе
`
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)
Ответ 2
Потенциально ужасно неэффективен, но...
Почему бы не использовать read_csv
, чтобы построить два (или более) DataFrames, а затем использовать объединение, чтобы собрать их вместе?
Тем не менее, было бы легче ответить на ваш вопрос, если вы предоставите некоторые данные или какой-то код, который вы использовали до сих пор.
Ответ 3
Я могу попытаться объединить файлы, прежде чем загружать их в pandas. Если вы работаете в Linux или Mac, вы можете использовать cat
, иначе очень простая функция Python могла бы выполнить эту работу для вас.
Ответ 4
Являются ли эти файлы в формате csv. Вы можете использовать read_csv.
http://pandas.sourceforge.net/io.html
Как только вы прочтете файлы и сохраните их в двух фреймах данных, вы можете объединить два фрейма данных или добавить дополнительные столбцы в один из двух фреймов данных (при условии общего индекса). Pandas должен иметь возможность заполнять отсутствующие строки.