能用python解决的问题都不是问题
需求
近日接到一个任务,需要将一个有1000记录的excel数据,平均切分为50个表,并且要求按照指定格式命名;
当然,手动切分是不可能的,那肯定是使用python来实现啦!
实现
数据源说明:
大表只有一列数据,是id类的数据,没有行名和列名,切分后数据也不显示行名和列名;
源数据大概是这样:
代码
# -*- coding: utf-8 -*-
"""
Created on Wed Sep 30 13:43:18 2020
@author: CLP
将一个表格数据切片,分成50个表格,每个里面放20条,名称:导入数据51 ~ 100
"""
import pandas as pd
import pathlib
#使用pandas读取表格数据
xls_file=pd.read_excel('./data.xls')
"""写一个循环,生成结果数据"""
for i in range(50):
#数据切片,将源数据按第0-20、20-30 等间隔切分,默认[n:m]中,不包含第m条数据
min_xls = xls_file[i*20:(i+1)*20]
filename = "D:/Project/Python/01-tools/data/"+"数据采集表"+str(51+i)+".xls"
#如果文件不存在会报错,使用pathlib先创建一个空的文件
pathlib.Path(filename).touch()
#写入新表格
min_xls.to_excel(filename)
问题
使用该方法的时候,发现切分后的数据,带个行名和列名,但是需求是去掉写入行名和列名,
解决
查看一下to_excel()方法的参数:
excel_writer,
sheet_name="Sheet1",
na_rep="",
float_format=None,
columns=None,
header=True, #默认显示列名
index=True, # 默认显示行名
index_label=None,
startrow=0,
startcol=0,
engine=None,
merge_cells=True,
encoding=None,
inf_rep="inf",
verbose=True,
freeze_panes=None,
修改一下代码:
# -*- coding: utf-8 -*-
"""
Created on Wed Sep 30 13:43:18 2020
@author: CLP
将一个表格数据切片,分成50个表格,每个里面放20条,名称:导入数据51 ~ 100
"""
import pandas as pd
import pathlib
#使用pandas读取表格数据
xls_file=pd.read_excel('./data.xls')
"""写一个循环,生成结果数据"""
for i in range(50):
#数据切片,将源数据按第0-20、20-30 等间隔切分,默认[n:m]中,不包含第m条数据
min_xls = xls_file[i*20:(i+1)*20]
filename = "D:/Project/Python/01-tools/data/"+"数据采集表"+str(51+i)+".xls"
#如果文件不存在会报错,使用pathlib先创建一个空的文件
pathlib.Path(filename).touch()
#写入新表格,去掉行名列名(去掉行名index=False,去掉列名header=False)
min_xls.to_excel(filename,index=False,header=False)
实现成功!
最后,我三下二除五把数据导出来后,老板居然要我把列名还是显示出来!!
那么改下参数就可以了,多大点事,瞬间处理完。