Python循环合并文件夹下的excel文件

在进行数据处理的时候,涉及两个表格按某一字段属性合并成新表,比如对于一个固定的县域行政区属性表,我剩下的各类县域产量数据表格要按照县域代号属性字段与固定的行政区表合并,代码完成完全参考以下博主文章,自己只加了循环

https://www.jianshu.com/p/f4c1e15f3361

import pandas as pd
from pandas.core.frame import DataFrame
from os import listdir

t = r"E:\seasonyield_predict\datapre\yield\yield.xls"##固定行政区表格
data1 = pd.read_excel(t)

path=r"E:\seasonyield_predict\datapre\yield_t"
filelist=listdir(path)###列出文件下所有Excel文件
###循环
for i in range(2):###自己只是试验了循环,里面仅有2个excel文件
    Input="E:/seasonyield_predict/datapre/yield_t/"+filelist[i].split(".")[0]+".xlsx"
    data2=pd.read_excel(Input)
    c = pd.merge(data1,data2,left_on='PAC',right_on='PAC',how='left')
    out="E:/seasonyield_predict/datapre/yield/"+filelist[i].split(".")[0]+"_t.xlsx"
    c.to_excel(out)###输入,输出文件不在工作文件下,也不是统一文件路径,可按自己需要设置


#'''left_on代表data1(即表1)的合并关键字,
#right_on代表data2(即表2)的合并关键字,
#how代表合并的方法是“左连接”,就是把右边的表合并到左边的表中,
#这里的左 即为data1(即表1),右 即为data2(即表2)。'''

自己在运行的时候遇到的问题:

  1. 首先是忽略了除了下载好的pandas之外,还需要下载xlrd或者openpyxl两个处理excel文件的包;自己一开始用conda install -c conda-forge语句安装不上,后来直接在命令窗口用pip install 安装的,成功了;

  1. 在输入输出路径时,发现不能直接path=r"E:\seasonyield_predict\datapre\yield_t",然后再Input=path+filelist[i].split(".")[0]+".xlsx",会出错,然后就改成了全路径Input="E:/seasonyield_predict/datapre/yield_t/"+filelist[i].split(".")[0]+".xlsx"

猜你喜欢

转载自blog.csdn.net/weixin_45626690/article/details/129698885
今日推荐