python能干的事情太多,对于小白来说,只能望洋生叹,不过不要灰心,看看我是如何使用python处理Excel的,你就能理解python的简单和高效。 一、Excel文件 1、文件路径 F:productdemo。xls 2、文件内容(原始数据) 成品入库工作表 成品出库工作表 二、常用的Excel处理诉求 1、分类汇总 2、筛选 3、产品出入库汇总 三、使用python实现上述诉求。分类汇总:成品入库数据分类汇总,python代码:importpandasaspd导入pandas包,简写为pd dfpd。readexcel(rF:productdemo。xls,sheetname成品入库)读入原始数据 df。fillna(0,inplaceTrue)处理excel中的空值 dfdf〔〔product,description,smallbag,小袋数量〕〕选择要进行分类汇总的列 df。rename(columns{小袋数量:入库},inplaceTrue)重命名列标题 list1〔product,description,smallbag〕设置分类汇总的依据 list2〔入库〕设置汇总的字段 dfdf。groupby(list1)〔list2〕。sum()分类汇总 df。resetindex(inplaceTrue,dropFalse)重置索引 df〔description〕df〔description〕。astype(str)设置字段类型 df 运行上述代码,即可得到汇总结果,如下图所示: 成品入库产品数据分类汇总成品出库产品数据分类汇总 依葫芦画瓢写python代码:importpandasaspd dfpd。readexcel(rF:productdemo。xls,sheetname成品出库) df。fillna(0,inplaceTrue) dfdf〔〔product,description,包装类型,发货,实销,其他出库〕〕 df。rename(columns{实销:出库},inplaceTrue) list1〔product,description,包装类型〕 list2〔出库,其他出库〕 dfdf。groupby(list1)〔list2〕。sum() df。resetindex(inplaceTrue,dropFalse) df〔description〕df〔description〕。astype(str) df 运行上述代码,即可得到汇总结果,如下图所示: 筛选客户 python代码:importpandasaspd4 dfpd4。readexcel(rF:productdemo。xls,sheetname成品出库) df。fillna(0,inplaceTrue) dfdf〔〔customer,product,description,包装类型,发货,调货,退货,实销,其他出库,运费〕〕 list1〔customer,product,description,包装类型〕 list2〔发货,调货,退货,其他出库,运费〕 dfdf。groupby(list1)〔list2〕。sum() df。resetindex(inplaceTrue,dropFalse) df〔description〕df〔description〕。astype(str) customernameinput(请输入要查询的客户名称:) dfdf〔df〔customer〕customername〕设置筛选条件 df 运行上述代码后,会提示用户输入要查询的客户名称,输入后(这里以输入客户高树友为例说明)即可得到结果,如下图: 产品出入库汇总 思路:先分别对成品入库和成品出库数据分类汇总,再将两张表的内容合并到一起即可。 python和数据库一样,有连表的功能,就是把工作表以某种合适的方式连接起来再操作。 python代码:importpandasaspd3 df1pd3。readexcel(rF:productdemo。xls,sheetname成品入库) df2pd3。readexcel(rF:productdemo。xls,sheetname成品出库) df1。fillna(0,inplaceTrue) df2。fillna(0,inplaceTrue) df1df1〔〔product,description,smallbag,小袋数量〕〕 df2df2〔〔product,description,包装类型,实销,其他出库〕〕 df1〔description〕df1〔description〕。astype(str) df2〔description〕df2〔description〕。astype(str) df1。rename(columns{小袋数量:入库},inplaceTrue) df2。rename(columns{实销:出库},inplaceTrue) list1〔product,description,smallbag〕 list2〔入库〕 df1df1。groupby(list1)〔list2〕。sum() df1。resetindex(inplaceTrue,dropFalse) list3〔product,description,包装类型〕 list4〔出库,其他出库〕 df2df2。groupby(list3)〔list4〕。sum() df2。resetindex(inplaceTrue,dropFalse) df3pd3。merge(df1,df2,howouter,lefton〔product,description,smallbag〕,连接两表的语句。 righton〔product,description,包装类型〕) df3。fillna(0,inplaceTrue) df3〔库存〕df3〔入库〕df3〔出库〕df3〔其他出库〕 df3df3〔df3。index!0〕 list5〔product,description,smallbag,入库,出库,其他出库,库存〕 df3df3〔list5〕 df4pd3。pivottable(df3,index〔product,description,smallbag〕, values〔入库,出库,其他出库,库存〕,aggfuncsum,marginsTrue) colorder〔入库,出库,其他出库,库存〕 df4df4。reindex(colorder,axis1) df4 运行结果,如下图: 学会了上述几个使用python处理Excel数据的方法,就可以举一反三,就可以一劳永逸。 你还说你不爱python吗?