python - 如何读取多个文件并将它们合并到一个 pandas 数据框中?

标签 python pandas

我想读取位于同一目录中的多个文件,然后将它们合并到一个 pandas 数据框中。

如果我这样做,它会起作用:

import pandas as pd

df1 = pd.read_csv("data/12015.csv")
df2 = pd.read_csv("data/22015.csv")
df3 = pd.read_csv("data/32015.csv")

df = pd.concat([df1, df2, df3])

但是,我想使用更优雅的解决方案,如果文件数量大于 3,该解决方案将特别有用。

我尝试过这种方法,但是我不知道如何在 for 循环中应用 concat

import pandas as pd
import os
from os import path

files = [x for x in os.listdir("data") if path.isfile("data"+os.sep+x)]

for f in files:
    df = pd.read_csv("data/"+f)

最佳答案

您可以使用列表理解来创建要连接的 DataFrame 列表,然后在该列表上调用 pd.concat()。示例 -

import pandas as pd
import os
from os import path
dfs = [pd.read_csv(path.join('data',x)) for x in os.listdir("data") if path.isfile(path.join("data",x))]
df = pd.concat(dfs)

你应该考虑使用 os.path.join()因为我曾经创建路径,而不是自己连接字符串。

关于python - 如何读取多个文件并将它们合并到一个 pandas 数据框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32893509/

相关文章:

python - 遍历目录并打印每个文件的内容 [PYTHON]

python - 日期时间和时间增量

python - 如何获取 HoverTool 上的轴值 - Bokeh

python - Pandas 枢轴 : how to keep rows with all NaNs without introducing extra rows

python - 将自定义累积函数应用于 Pandas 数据框

Python - 从元组列表中提取最小/最大值

python - pow 运算符的计算错误

python - Pandas 从日期类型列中获取星期几

python - 在 Pandas 中将分类特征转换为数字特征时出错

python - 写入和读取 csv 文件 python