需求:一个文件夹下面包含多个子文件夹,子文件夹里面还有多个Excel文件,取出指定的列,将所有文件合并成1个Excel文件,如下图。
代码如下
# -*-coding:utf-8-*-
#处理文件路径
import os
#Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
import pandas as pd
#定义变量
base_dire = "./data/CHD提取信息"
g = os.walk(base_dire)
result_file = './result/patient_merge.xlsx'
#定义Dataframe列名
df_col_names = ['IN_PATIENT_FLOW', 'PATIENT_SEX', 'PATIENT_BIRTHDAY','AGE', 'PATIENT_NATION']
#定义1个Dataframe
df_result = pd.Dataframe(columns=df_col_names)
#遍历文件夹下所有文件及目录
for path,dir_list,file_list in g:
#遍历所有文件
for file_name in file_list:
#读取excel,sheet_name=None 是获取所有sheet_name,usecols=[0,2,3,4,10] 是获取第0、2、3、4、10列
df = pd.read_excel(os.path.join(path, file_name),sheet_name=None,usecols=[0,2,3,4,10])
#遍历所有sheet_name
for i in df.keys():
#如果sheet_nam不是“患者信息”就跳出循环
if i != '患者信息':
continue
else:
#读取excel,sheet_name='患者信息' 是获取sheet_name为'患者信息'的数据,usecols=[0,2,3,4,10] 是获取第0、2、3、4、10列
excel = pd.read_excel(os.path.join(path, file_name),sheet_name='患者信息',usecols=[0,2,3,4,10])
#使用append函数往Dataframe中添加数据
df_result = df_result.append(excel)
# print(df_result)
df_result.to_excel(result_file,index=False)
结果
reference
1.Python遍历文件夹下所有文件及目录
https://blog.csdn.net/mighty13/article/details/77995857
2.pandas.read_csv中的usecols函数实现读取指定列
https://blog.csdn.net/fisherming/article/details/97616053



