如何使用for循环将各种csv文件读取到数据帧中并将其全部附加在一起

时间:2020-07-23 12:25:02

标签: python pandas

我想一次打开并读取许多csv文件,将每个文件作为一个DataFrame打开,然后将它们全部放到一个数据框中。所有csv / DataFrames的列数均相同。 我试图做的是这样:

import os
import pandas as pd

df = pd.DataFrame()

paths = "C:\\Users\\Host02\\Documents\\analise2\\archives\\ms"

arr = os.scandir(paths)

for file in arr:
    df2 = pd.read_csv(file.path, sep=";", header=8)
    df.append(df2)

问题在于,最后第一个Dataframe(df)保持为空,似乎append无效。

编辑:我已经用这种方式解决了我的问题。我感谢所有的支持者。

import pandas as pd
import os

arquivos_path = os.scandir("/home/marcos/Python/pesquisa/arquivos/ms/bissexto")

j = pd.DataFrame()

for arquivo in arquivos_path:
    df = pd.read_csv(arquivo.path, skiprows=8, sep=";")
    j = j.append(df)

j.to_csv("/home/marcos/Python/pesquisa/arquivos/ms_novo/bissexto/teste.csv", index=False)

2 个答案:

答案 0 :(得分:0)

如果您的csv文件具有相同的宽度,则您应该可以运行以下文件:

paths = "C:\\Users\\Host02\\Documents\\analise2\\archives\\ms"
arr = os.scandir(paths)

for i,file in enumerate(arr):
    load_df = pd.read_csv(file.path, sep=";", header=8)
    if i==0:
        df=load_df
    if i>0:
        df=pd.concat([df, load_df])

答案 1 :(得分:0)

将每个文件加载到数据框中,然后将它们添加到列表中。 然后使用([l1, c3])将所有这些数据帧合并在一起。

以下是使用与您相同的代码结构的示例:

pd.concat
相关问题