工作需要将一批csv文件转为excel文件并进行数据计算处理,因为csv文件为;分割,并且转为excel文件后可能同一个名称的列不在同一列,比如同样是Paid Price名称的列,一个文件在AL列,两一个在AO列,如果单纯的读取所有文件并合并的话就会导致数据错列排放,在网上找了很多教程并没有现成的程序解决问题,所以就只能自己动手丰衣足食了。
每个.xlsx文件都是有csv转换过来的,详见上一篇文章Python批量处理csv文件转Excel--xlsx文件——利用pandas库(csv文件可指定分隔符)
处理思路:
因为文件中的数据并不是所有的数据都有用,只有部分列数据有用,所以可以根据文件中列名称获取索引号,并根据索引号获取整列的数据,再将获取的列数据写入新的excel文件中,加上for循环即可批量写入所有excel文件,为了区分每行数据来自哪个文件,可以 加入下列代码每次循环读取指定列数据之后追加一列数据,列数据标题为“店铺”,列内容为文件名
# 追加一列数据,将每个文件的名字追加进该文件的数据中,确定每条数据属于哪个文件
excel_name = file.replace(".xlsx", "") # 提取每个excel文件的名称,去掉.xlsx后缀
df["店铺"] = excel_name # 新建列名为“店铺”,列数据为excel文件名
dfs.append(df) # 将新建店铺列追加进汇总excel中
文件夹内容: