python - 合并多个不同大小的 pandas 数据框

标签 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 行的内容。

最佳答案

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

关于python - 合并多个不同大小的 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53257801/

相关文章:

python - Pandas:在字符串匹配后获取列中的下一个值

r - 按列开始和结束转换数据帧 R

python - Pandas 日期时间索引类型错误

python - 在 Python 中更改堆积条形图图例

python - 在 MATLAB 中进行这种 pythonic 向量化赋值的等效方法是什么?

php - Python/Django/Ruby/Rails/PHP 中的学习管理系统

python - 如何更新文本文件而不重写它

python - Pandas 相关矩阵到唯一索引/列组合的字典

python - 从操作系统创建 Pandas 数据框

python - 如何知道scrapy规则提取了哪些链接