如何将多个 csv 合并到一个数据帧中

Dog*_*Fox 2 python dataframe pandas

我有 6 个具有相同标题的 csv 文件。我正在尝试删除索引 0 并将它们合并到一个数据帧中。我一直遇到的一个问题是我似乎只能访问 glob 中的最后一个文件。

import glob
import csv
import pandas as pd

for item in glob.glob("*.csv"):
    with open(item, 'r') as csvfile:
        reader = csv.reader(csvfile, delimiter=',')
        for row in reader:
            print(row)
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Sci*_*tas 5

import glob
import pandas as pd

dfs = []
for file in glob.glob("*.csv"):
    dfs.append(pd.read_csv(file))
pd.concat(dfs)
Run Code Online (Sandbox Code Playgroud)

或者甚至在一行中:

pd.concat([pd.read_csv(file) for file in glob.glob("*.csv")])
Run Code Online (Sandbox Code Playgroud)

pandas具有读取单个.csv文件的功能。所以我建议在你的循环中使用pd.read_csv(filename)(见这里的详细信息)DataFrame为每个 csv 文件制作一个。您可以将所有内容附加DataFrames到列表中。

您可以在循环之后concat所有的DataFrames使用pd.concat([df1, df2, ...]),通过该名单(见此处了解详情)。