我有几个文件夹-3个包含类似csv(相同名称)的文件夹。 这些csv捕获每个数据周期和搅动周期组合的因变量相关性,如下所示:
Data Period Jan'18
Churn Period Feb'18
Variable_Name correlation
Pending_Disconnect 0.553395448
status_Active 0.539464806
days_active 0.414774231
days_pend_disco 0.392915837
prop_tenure 0.074321692
abs_change_3m 0.062267386
因此,从3个文件夹中,将3个不同的具有相同名称的csv内容整理到工作簿中,如下所示:
Data Period Jan'18 Data Period Jan'18 Data Period Jan'18
Churn Period Feb'18 Churn Period Mar'18 Churn Period Apr'18
Variable_Name correlation Variable_Name correlation Variable_Name correlation
Pending_Disconnect 0.553395448 Pending_Change 0.043461995 active_frq_N 0.025697016
status_Active 0.539464806 status_Active 0.038057697 active_frq_Y 0.025697016
days_active 0.414774231 ethnic 0.037503202 ethnic 0.025195149
days_pend_disco 0.392915837 days_active 0.037227245 ecgroup 0.023192408
prop_tenure 0.074321692 archetype_grp 0.035761434 age 0.023121305
abs_change_3m 0.062267386 age_nan 0.035761434 archetype_nan 0.023121305
目标是比较相关性如何逐月变化。
如何使用python从不同的文件夹中提取csv并将其整理到excel的工作簿中? 目前,我手动将每个csv的内容粘贴到excel工作表中并创建报告,但是我需要使它自动化。
请问有人可以帮我吗?
文件夹结构如下:
操作后,excel工作表应如下所示:
答案 0 :(得分:1)
您可以执行以下操作:
import glob
rootdir = '/home/my/folders' ## Give the path before folders 1 Jan-Feb,2Jan-Mar, etc.. )
f = list()
for subdir, dirs, files in os.walk(rootdir):
for d in dirs:
f.append(glob.glob(rootdir + '/' + d + '/*.csv'))
f = list(filter(None, f)) # Removes empty elements from the list
# f contains csv files from all folders
现在,为列表f
中的所有csv创建数据框
dfs = [pd.read_csv(file) for file in f[0]] # f[0] because f is a list of lists
df = pd.concat(dfs)
这已将您所有的数据帧合并到一个df
中。
现在,您可以使用to_excel()
熊猫函数将其写入excel。
注意:您可能需要对数据框进行一些调整才能使其正确连接。
让我知道这是否有帮助。