python excel行数计算不对_数十万数据Excel数据不好处理怎么办?几行Python搞定

电商行业,每月有上百万条订单发货数据需要与仓库的数据进行核对计算,涉及到数据计算,筛选,匹配等步骤,用excel表超级卡,并且经常卡死。

这时如果你会Python,十几行代码就可以搞定。

这里需要两个Python库,一个是os库,一个是pandas库。

os库

os是Python内置库,不需要额外安装,只要用import导入就可以用了。os模块封装了常见的文件和目录操作,利用它可以轻松的对系统上的目录和文件进行各种操作,比如获取当前目录、列举当前文件夹中的所有文件和文件夹、判断文件或目录是否存在、删除文件等。

pandas库

pandas是第三方库,需要手动安装才能使用。pandas是专门用来做数据分析的强大类库,可以方便地从csv、Excel和其他文本文件以及数据库中读取数据,然后对数据进行加和、求平均值、求方差、计算最大值最小值等数据分析,支持生成Excel等格式文件或进行可视化操作。

其中读Excel需要依赖xlrd库,写Excel依赖openpyxl,pandas、xlrd和openpyxl安装命令如下:

$ pip install xlrd openpyxl pandas

下面开始进行数据处理…

这里假设数据是按日期命名的Excel文件并且放在一个Excel文件夹中,每个Excel文件包含用户ID、商品ID、商品属性列表、购买数量这几列信息。

文件夹中的所有文件如下:

$ ls excel_data

20120702.xlsx 20131018.xlsx 20150203.xlsx 20170416.xlsx 20180814.xlsx

20120703.xlsx 20131019.xlsx 20150204.xlsx 20170417.xlsx 20180815.xlsx

20120704.xlsx 20131020.xlsx 20150205.xlsx 20170418.xlsx 20180816.xlsx ...

实现的思路是利用os库获取所有的Excel文件,然后用pandas依次读取所有文件并合并到一起进行数据分析,计算出每个商品的总量以及销量前十的商品。列举所有Excel文件

import os

files = os.listdir("excel_data")

2.用pandas读取所有数据并合并到一起

import pandas as pd

df_list = [pd.read_excel(os.path.join("excel_data", f)) for f in files]

data = pd.concat(df_list)

3. 统计每个商品的数量

sum_of_product = data[["商品ID", "购买数量"]].groupby(["商品ID"]).sum()

sum_of_product

商品ID购买数量

16621

20182617

20331967

203320494

203322332

......

12268002521

1226800268

12269002316

12269202448

1226960245

662 rows × 1 columns

4.获取销量前十的商品

sum_of_product.sort_values('购买数量', ascending=False).head(10)

商品ID购买数量

5001883156632

500070168291

500119936351

500136366340

500037006325

2111225823

500105585248

500160064948

500066024692

500025244123

完整代码如下:

import os

import pandas as pd

# 获取所有Excel文件并读取数据

files = os.listdir("excel_data")

df_list = [pd.read_excel(os.path.join("excel_data", f)) for f in files]

data = pd.concat(df_list)

# 统计每个商品的数量,并输出到Excel文件中

sum_of_product = data[["商品ID", "购买数量"]].groupby(["商品ID"]).sum()

sum_of_product.to_excel("各个商品数量统计.xlsx")

# 统计销量前十的商品

sum_of_product.sort_values('购买数量', ascending=False).head(10)

商品ID购买数量

5001883156632

500070168291

500119936351

500136366340

500037006325

2111225823

500105585248

500160064948

500066024692

500025244123

教程就到这里,不足之处欢迎交流指正。

————————————————

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++心形代码_情人节,用代码比个心

今日份的情人节,在家闲出p的你,是不是比往日更加寂寞?这无情的雨,这冰冷的雪,这朴实无华且枯燥的生活,你是否想做点什么?没有朱一旦的劳力士,也没有朱一龙的神仙颜值,那么…

mysql 增大数据库链接_怎么增大MYSQL数据库连接数

怎么增大MYSQL数据库连接数怎么增大MySQL数据库连接数,MYSQL数据库安装完成后,默认连接数是100,流量稍微大一点的论坛或网站这个连接数是不够哟用的,那么怎么才能增加默认MYSQL连接数呢?这里给大家介绍一下具体的方法与…

python中idx是什么意思_Python pandas.DataFrame.idxmax函数方法的使用

DataFrame.idxmax(self, axis0, skipnaTrue) [source] 返回在请求轴上第一次出现最大值的索引。不包括NA/null。 参数:axis : {0或index,1或columns},默认0 行为0或index,列为1或columns skipna : boolean&…

python求近似值_python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配...

已知一个元素,在一个list中找出相似的元素 使用场景: 已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串 使用场景太绕了, 直接举例来说吧 随便举例: 按青岛城市的城区来说, 我数据库中存储的城区是个list…

hive 2.3 mysql_Note23:Hive-2.3.6安装配置

安装包下载安装把安装包上传到 /opt/software 目录解压[kevinhadoop112 software]$ tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /opt/module/改名[kevinhadoop112 module]$ mv apache-hive-2.3.6-bin/ hive-2.3.6配置修改conf 目录下的 hive-env.sh.template 名称为 hive-env.…

上下相机贴合对位计算公式_展商速递 | 汇驰新材热可塑性光学透明膜优化升级全贴合工艺...

2020/11/19-21广州汇驰新材料有限公司(东莞欧伏电子)展位号:1R10展会时间:11月19-21日地点:深圳会展中心(福田区老展馆)欢迎相关企业莅临商谈!关于汇驰新材广州汇驰新材料有限公司(东莞欧伏电子)(展位号:1R10)主要从事…

datagrip替换字_DataGrip使用进阶-导航及搜索(一)

1、关键字导航:当在datagrip的文本编辑区域编写sql时,按住键盘Ctrl键不放,同时鼠标移动到sql关键字上,比如表名、字段名称、或者是函数名上,鼠标会变成手型,关键字会变蓝,并加了下划线&#xff…

js map获取_感知 Node.js 异步I/O 的魅力!

JS 在浏览器的网页中执行,浏览器给 JS 提供的能力是操作文字、图片,或实现一些简单效果。术语叫 DOM 操作。JS 在 Node.js 环境中执行, Node 给 JS 提供了诸如 文件操作, 网络操作 等功能模块。基于这些模块,JS 一下就牛气冲天了。在 Node.j…

mysql数值类型占用字节及范围_mysql数据类型及占用字节数【mysql】

一、数值类型1,int 类型 4字节 。备注:一个字节8位,即有32位,存在一个符号位。所以能存的数值大小为-2的31次方到2的31次方;2,tinyint 类型 1字节。3,smallint 类型 2字节4,medi…

k8s pod restartcount 改0_通过实例快速掌握k8s(Kubernetes)核心概念

点击上方蓝色“Go语言中文网”关注我们,设个星标,每天学习 Go 语言本文作者:倚天码农,原创授权发布原文链接:https://segmentfault.com/a/1190000020595811容器技术是微服务技术的核心技术之一,并随着微服务…

有必要考国二mysql_计算机二级必须要考吗

计算机二级必须要考吗计算机二级考试是全国计算机等级考试四个等级中的一个等级,由教育部考试中心主办,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。接下来由小编为大家整理出计算机二级必须要考吗,希望能够…

div垂直居中的方法_【CSS】8种常见的垂直水平居中方法

1.比较传统的方式 absolutemargin负值偏移特点:父容器要设置宽高,需要知道子容器宽高,偏移量是子容器宽高的一半且是负值,兼容性好/* absolutemargin负值偏移布局 */.layout.absolute {position: relative;}.layout.absolute art…

java 反射获取对象_使用Java反射机制获取对象

本文由广州疯狂软件教育java培训分享:构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了!package interf;public interface Person {public void sayHello();}构造一个Person的实现类American,问好的时候…

websocket 导致大量apache进程_Swoole 服务端主动向websocket推送消息

在之前的博文中,我们已经学完了如果使用swoole搭建websocket长连接,也学会了swoole的多进程数据共享操作。但在一个完整的websocket长连接日常操作链中,服务端往往会主动给在线的用户单独推送消息,会群发一些消息。在Swoole-webso…

python因子分析法_python——因子分析

因子分析用Python做的一个典型例子 一、实验目的 采用合适的数据分析方法对下面的题进行解答二、实验要求 采用因子分析方法,根据48位应聘者的15项指标得分,选出6名最优秀的应聘者。 三、代码 importpandas aspd importnumpy asnp importmath asmath imp…

polycom安卓手机客户端_三款免费「游戏串流」APP,在手机/电视上玩PC游戏

以前想把电脑游戏输出到电视机上玩,得用HDMI线输出,如果电脑主机和电视机离太远,HDMI线不够长,还得抱电脑主机到电视机旁边,非常不方便。随着技术的发展,现在已经有「串流」功能,只要电视机和电…

java框架谁搭建_从零开始搭建一个开发框架(Java + Hibernate + Spring + Oracle)

框架使用的系统技术以及数据库如下:技术:Java/Hibernate/Hibernate Annotation/Spring数据库:Oracle 10g整个框架的搭建步骤大致分为以下三步:1、创建数据库相关信息2、配置Hibernate框架(导入包、编写hibernate.cfg.xml配置文件、…

python获取返回值_python如何获取函数的返回值

函数需要先定义后调用,函数体中 return 语句的结果就是返回值。如果一个函数没有 reutrn 语句,其实它有一个隐含的 return 语句,返回值是 None,类型也是 NoneType。return 语句的作用:结束函数调用、返回值 指定返回值…

java模拟器百度_Java模拟实现百度文档在线浏览

这个思路是我参考网上而来,代码是我实现。采用Apache下面的OpenOffice将资源文件转化为pdf文件,然后将pdf文件转化为swf文件,用FlexPaper浏览。ok,A、下载OpenOffice (转换资源文件)B、下载JodConverter(调用OpenOffice)C、下载Sw…

python去掉标点、特殊符号_python3去掉string中的标点符号方法

网上看到的python去掉字符串中的标点符号的方法,大多是基于python2的,不适用python3,调整后代码如下: 代码 lower_case_documents [Hello, how are you!,Win money, win from home.,Call me now.,Hello, Call hello you tomorrow…