我正在尝试将所有 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']
答案 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)