Объединение нескольких панелей данных с разными размерами - PullRequest
0 голосов
/ 12 ноября 2018

Мой фрейм данных выглядит так:

    007538839
0   105586.180
1   105582.910
2   105585.230
3   105576.445
4   105580.016

df1.shape = (69302, 1)

Имеется только один столбец с именем "007538839". И у меня есть несколько других фреймов данных, которые также имеют один столбец, подобный этому, но с разными именами столбцов и разными размерами строк.

    007543167
0   39886.620
1   39908.777
2   39886.574
3   39884.340
4   39871.098

df2.shape = (69778, 1)

Я хочу объединить их все в один цикл, который выглядит следующим образом:

import os
base_dir = ''
for root, dirs, files in os.walk(base_dir, topdown=False):
  for name in files:
    if root.count(os.sep) == 3 and name.endswith(".csv"):
       file_path = os.path.join(root, name)
       #merge all files

Моя цель - не удалять строки, а для строк, которые еще не имеют значения, будет назначен NaN. Так, например, если я объединю df1 и df2, я должен получить что-то с 69778 строками.

1 Ответ

0 голосов
/ 12 ноября 2018

Сначала создайте список словарей, добавив, а затем используйте concat с axis=1:

import os
dfs = []
base_dir = ''
for root, dirs, files in os.walk(base_dir, topdown=False):
  for name in files:
    if root.count(os.sep) == 3 and name.endswith(".csv"):
       file_path = os.path.join(root, name)
       df = pd.read_csv(file_path)
       dfs.append(df)

df = pd.concat(dfs, axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...