Обновление и объединение DataFrame с уровнями иерархии в цикле for - PullRequest
0 голосов
/ 05 марта 2019

У меня есть набор файлов (25 файлов) в каталоге. Мне нужно загрузить все файлы данных в один DataFrame, не теряя ссылки на имя файла.

Структура файла (df):

date        Var1 Var2 Var3
1/01/2014   1    2    1
2/01/2014   12   20   10
...
31/01/2014  5    7    8

Я делаю следующее

DATA_fin=pd.DataFrame()
m=0
for files in d:
    m=m+1
    df = pd.read_csv(filename)

    if m==1:
        DATA_fin=df

    else:
        gh=d[0:m]
        DATA_fin=pd.concat([DATA_fin, df], axis=1, keys=gh)

Приведенный выше код не работает после первой итерации, так как Data_fin и df имеют разные уровни.

Я бы хотел получить окончательный вариант DataFrame следующим образом:

File 1                      File 2   
date        Var1 Var2 Var3  date        Var1 Var2 Var3
1/01/2014   1    2    1     1/01/2014   11   23   12
2/01/2014   12   20   10    2/01/2014   2    0    1 
...                         ... 
31/01/2014  5    7    8     31/01/2014  1    4    5

есть предложения?

1 Ответ

0 голосов
/ 05 марта 2019

Я не уверен, должен ли ваш окончательный DataFrame действительно выглядеть следующим образом.Я предлагаю:

dfs = []
for file in d:
    df = pd.read_csv(file)
    df['File'] = file
    dfs.append(df)

df = pd.concat(dfs)

Теперь каждая строка знает, откуда она берется, и DataFrame может быть легко переставлен.

...