Python小试牛刀

excel功能非常强大,但是那也是对于会用的人来说才有意义。对于程序员来说,excel就是异端,获取数据后,自己想怎么搞就怎么搞那感觉才舒服。

听说想根据某一列数据将excel拆分成多个文件的需求。

作为一个传统C程序员,第一想到的就是按列建关键字,然后....

直到我发现了pandas这东西,居然只要

import pandas as pd

def read_excel():

xlsx_file = pd.ExcelFile(r'D:\pyexcel\2.xlsx')

sheet1 = xlsx_file.parse('Sheet1')

colname = input('输入待分列名:')

df = pd.DataFrame(sheet1)

grouped = df.groupby(df['%s']%colname)

for name, group in grouped:

group.to_excel(r'D:\pyexcel\%s.xlsx'%name, index=False)

if __name__ =='__main__':

read_excel()

好吧在python的世界中 我才是异端

但是要打包给别人用,pyinstaller教育了我,偷懒是要付出代价的,上面几行代码打包成的exe有200M。上万查了半天原来是pandas这库太大了,所以,异端就异端吧,我改。

gp = input('输入分组列名:')

for i in range(0, sheet.ncols):

cell_value = sheet.cell_value(0, i)

if cell_value == gp:

apart_col = i

break

for i in range(1, sheet.nrows):

apart = sheet.cell(i, apart_col).value

if apart not in divied:

tmpapart = []

tmpapart.append(i)

divied.setdefault(apart, tmpapart)

else:

tmpapart = divied[apart]

tmpapart.append(i)

divied[apart] = tmpapart

实现了pandas中的groupby,ok 收工,打包只有9M。虽然我还是觉得大,但是好多了。

完整代码作者后续上传github。

说下总体感受,python就是业余拿来玩耍的,但是可以发现它确实太方便了,尤其对于我这种C程序员来说,丰富的库,那简直就是福音啊,未来不定期更新其他的使用情况

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190109G0QLC600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券