将多个CSV文件导入pandas df

时间:2021-05-03 05:32:41

标签: python-3.x pandas csv

我正在尝试将所有 csv 文件合并到给定目录中的单个文件中。相同的代码如下:

public Company emails(List<String> e_mails) {
    this.e_mails = e_mails;
    return this;
  }

问题是我收到错误:FileNotFoundError: [Errno 2] No such file or directory: 'data1.csv'

但是当我使用代码打印同一目录中的所有文件时:

import pandas as pd
import os
files =os.listdir(path)
    values =pd.DataFrame()
    for f in files:
        data = pd.read_csv(f, delim_whitespace=True)
        values = values.append(data)

我得到如图所示的所有 csv 文件:

    import pandas as pd
    import os
    files =os.listdir(path)
    print(files)

完整错误如图:

['data1.csv', 'data4.csv']

2 个答案:

答案 0 :(得分:1)

通过 pathlib 模块。参考 - https://treyhunner.com/2018/12/why-you-should-be-using-pathlib/

import pandas as pd
from pathlib import Path

path = Path('.')  # scpecify the path here in path constructor. Here,  ('.') means the current working dir.

df_list = []

for csv_file in path.glob('*/.csv'): # this will look for csv files in current dir and yield them 1 by 1.
    data = pd.read_csv(f, delim_whitespace=True)
    df_list.append(data) # add the dataframes into a list.

final_df = pd.concat(df_list) # Finally, concat all dataframes into one single dataframe.

答案 1 :(得分:0)

listdir() 仅显示给定路径中的文件和文件夹,但我认为它实际上并未将您置于此路径中。 也许而不是写作

data = pd.read_csv(f, delim_whitespace=True)

试着写

data = pd.read_csv(path + f, delim_whitespace=True)