python

当前位置:首页 > Pandas教程 > 当前文章

Pandas教程

pandas固定行数拆分excel文件为多个excel

2020-06-03 190赞 python中国网
每篇文章努力于解决一个问题!python高级、python面试全套、操作系统经典课等可移步文章底部。

  需求:把一个excel大文件kwd.xlsx按照指定的行数(600行)进行分割,思路如下:

  1、读取excel,获取到总行数rows(不含表头)

  2、指定行数split_num,计算rows/split_num并向下取整,得出能按标准分割的次数value

  3、按照标准分割次数计算能占用的总行数 rows_format = value*split_num

  4、根据总行数总行数 rows_format生成二维列表,列表的元素依次为[0,split_num],[split_num,split_num+split_num]...

  5、循环列表,利用dataframe切片(末端不包含)来依次获取固定数据写入到excel

  6、最后把剩余的行数并写入

  tips:

  1、切片是末端不包含的

  2、写入excel记得把index参数设为False,否则就把索引也写入了

  代码如下:

# -*- coding: utf-8 -*-
import pandas as pd
import math

df = pd.read_excel('kwd.xlsx')
rows,cols = df.shape # 获取行数列数,默认第一列表头不算行数

split_num = 600 # 指定分割行数
value = math.floor(rows/split_num) # 标准分割次数
rows_format = value*split_num # 标准分割所占用总行数
new_list = [[i,i+split_num] for i in range(0,rows_format,split_num)]

# 标准行数文件
for i_j in new_list:
    i,j = i_j
    excel_small = df[i:j]
    # index为False,否则就把行索引写入了
    excel_small.to_excel('kwd_{0}_{1}.xlsx'.format(i,j),index=False)

# 最后分割出的文件
df[rows_format:].to_excel('kwd_last.xlsx')

文章评论

pandas固定行数拆分excel文件为多个excel文章写得不错,值得赞赏