【问题标题】:Combining csv's from different folders into an excel sheet using python使用python将来自不同文件夹的csv组合成一个excel表
【发布时间】:2019-04-03 10:51:11
【问题描述】:

我有几个文件夹 - 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

目标是比较相关性如何逐月变化。

如何从不同的文件夹中提取 csv,并使用 python 将它们整理到 Excel 中的工作簿中? 目前我手动将每个 csv 的内容粘贴到 excel 表中并创建报告,但我需要自动执行此操作。

有人可以帮我解决这个问题吗?

文件夹结构如下:

操作后excel表格应如下所示:

【问题讨论】:

  • 看看熊猫。它可以轻松读取您的 csv 文件并以您喜欢的任何格式写入新文件

标签: python excel pandas automation


【解决方案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 中。

现在,您可以使用 pandas 的 to_excel() 函数将其写入 excel 中。

注意:您可能需要对数据帧进行一些操作才能使它们正确连接。

如果这有帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 2013-07-09
    • 2022-07-04
    • 2019-08-26
    • 1970-01-01
    • 2019-08-28
    • 2019-12-09
    • 2022-07-28
    • 2017-08-05
    相关资源
    最近更新 更多