合并几个大小不同的熊猫数据框

时间:2018-11-12 07:49:09

标签: python pandas dataframe

我的数据框如下:

    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 :(得分:0)

首先通过追加创建字典列表,然后将concataxis=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)