【发布时间】:2021-07-24 19:17:43
【问题描述】:
我想从我的工作目录的不同子目录中读取 csv,以创建一个组合的 csv 文件。组合后的 csv 应该有一列包含从中读取特定 csv 的子目录名称。
这是我尝试过的。
import os
import glob
import pandas as pd
all_filenames = [i for i in glob.glob('*/*.csv'),recursive=True)]
list_subfolder = [f.name for f in os.scandir(ride_path) if f.is_dir()]
df_list = []
for i in range(len(all_filenames)):
dir_name = list_subfolder[i]
current_csv = all_filenames[i]
data = pd.read_csv(current_csv)
data["sub_folder"]= dir_name
df_list.append(data)
combined_df = pd.concat(df_list)
combined_df.to_csv("combined_csv.csv", index=False)
问题在于,它添加了其中没有 csvs' 的子目录,这是错误且有问题的。实现这一目标的最佳方式是什么。
【问题讨论】:
-
我想你想要
glob.glob('**/*.csv', recursive=True) -
可行,但主要问题是获取从其中读取 csv 的文件夹名称作为列
标签: python pandas dataframe csv glob