再见 Excel,你好 Python Spreadsheets!⛵

Excel是大家最常用的数据分析工具之一,借助它可以便捷地完成数据清理、统计计算、数据分析(数据透视图)和图表呈现等。

但是!大家有没有用 Excel 处理过大一些的数据(比如几十上百万行的数据表),Excel 就会变得非常慢,甚至直接崩溃。

辛辛苦苦做一半的工作很有可能要重做!那就不只是 Excel 崩溃了,我们也得一边崩溃一边加班赶 deadline。

在本篇文中,ShowMeAI 将给大家介绍到 Python 中非常好用的交互式表格工具,它们的功能性和使用便捷度和 Excel 相当,同时有很好的内存优化,非常适合处理大文件表格。

工具1:Mito

Mito 是 Python 中的电子表格,它同时拥有 Excel 电子表格的简单易用性和 Python 的强大功能。我们可以像使用 Excel 一样使用 Mito,并且在我们执行每个操作之后,Mito 将自动生成与每个操作对应的 Python 代码。

  • Mito 官方文档
  • Mito Github
  • Mito 使用示例

使用 Mito 工具库,我们首先需要安装 Python 和 Jupyter Notebook 或 Jupyter Lab, 然后我们通过终端或命令行运行以下命令来安装 Mito。

python -m pip install mitoinstaller
python -m mitoinstaller install

下面我们来演示一下,如何在 Mito 中完成我们在 Excel 中的操作,如读取文件、创建列、数据透视表、可视化等。

💡 Mito:文件读取

Excel 默认对文件行数有限制。在内存足够时,Excel 可以打开数百万行的文件,但是只显示前 1048576 行。感兴趣的话可以测试下这个数据~同样在内存充足的情况下,Mito 打开文件的大小没有限制。来看具体操作!

读入表格文件

在读取 CSV 文件之前,先导入工具库,创建一个 Mito 电子表格对象,代码如下:

import mitosheet
mitosheet.sheet()

自动生成代码

除了导入之外,还会自动生成下面的代码。(这本是需要熟悉 Pandas 工具库的同学通过编码完成的。但现在我们简单操作之后,就可以自动生成了!)

import pandas as pd
StudentsPerformance_csv = pd.read_csv(r'StudentsPerformance.csv')

💡 Mito:基本表格操作

在 Excel 中,我们会创建一个『宏』来记录一组可以随时执行的操作。对应到 Mito中,我们可以做同样的事情,借助于 Python 生态与各种开源库,我们可以完成更多自动化的操作,比如处理完表格之后通过电子邮件发送报告,使用微信发送文件,导入数据到数据库中等。

下面我们用 Mito 执行一些操作,就好像我们在使用 Excel 一样。

创建新列&重命名列

如果要创建新列,只需单击『添加列』按钮。默认情况下,『Add Col』按钮将创建一个名为『new-column』的列,我们将通过双击列名将其重命名为『average』。

自动代码生成

这一步结束后,Mito 又生成了与我们在电子表格上执行的操作相对应的 Python 代码!

# Added column new-column-uca5 to StudentsPerformance_csv
StudentsPerformance_csv.insert(8, 'new-column-uca5', 0)
# Renamed new-column-uca5 to average in StudentsPerformance_csv
StudentsPerformance_csv.rename(columns={'new-column-uca5': 'average'}, inplace=True)

💡 Mito:统计分析

我们经常要对数据做统计分析,如果要对一行做统计计算,我们只需将公式写在一个单元格中。

求平均统计

假设我们要计算数学、阅读和写作的平均分数。 我们只需要在『average』列的任何单元格中填入公式 (math score+reading score+writing score)/3,如下图所示:

自动代码生成

同样 Mito 生成了pandas的统计代码:

# Set new-column-uca5 in StudentsPerformance_csv to =(math score+reading score+writing score)/3
StudentsPerformance_csv['average'] = (StudentsPerformance_csv['math score']+StudentsPerformance_csv['reading score']+StudentsPerformance_csv['writing score'])/3

💡 Mito:数据透视表

在Mito中创建数据透视表同样非常简单,单击『数据透视』按钮, 然后选择行、列和值。

创建数据透视表

下图演示了我们创建一个数据透视表,在『种族/民族』列中显示 A、B、C、D 和 E 组的数学和阅读分数的平均值。

自动生成代码

同样在Mito操作过后,我们生成了如下的 Python 代码。

# Imported StudentsPerformance.csv
import pandas as pd
StudentsPerformance_csv = pd.read_csv(r'StudentsPerformance.csv')
# Pivoted StudentsPerformance_csv into df2
unused_columns = StudentsPerformance_csv.columns.difference(set(['race/ethnicity']).union(set([])).union(set({'math score', 'reading score'})))
tmp_df = StudentsPerformance_csv.drop(unused_columns, axis=1)
pivot_table = tmp_df.pivot_table(
    index=['race/ethnicity'],
    values=['math score', 'reading score'],
    aggfunc={'math score': ['mean'], 'reading score': ['mean']}
)
pivot_table.columns = [flatten_column_header(col) for col in pivot_table.columns.values]
df2 = pivot_table.reset_index()

💡 Mito:可视化&绘图

使用 Mito 可以轻松创建饼图和条形图等基本图例用于可视化, 我们只需要点击『图表』并选择图表类型。

条形图示例

让我们为之前创建的数据透视表创建一个条形图,在 X 轴上显示『种族/民族』,在 Y 轴上显示『数学分数平均值』。

很炫酷有没有!而且 a、b、c 和 d 中生成的代码行相当于 Excel 宏, 每次我们运行代码时,我们都会执行所有记录下来的操作。

工具2:Bamboolib

当我们在Excel工作簿中进行内存密集型计算时,它非常容易卡顿感和崩溃,但这些计算在 Python 中是非常简单可以完成的,我们可以结合另一个名为bamboolib 的 Python 库完成一系列数据操作。

大家可以通过命令 pip install --upgrade bamboolib --user安装 bamboolib。

  • Bamboolib官方文档
  • Bamboolib Github

安装完成之后,我们运行以下命令来读取 CSV 或 Excel 文件。


import bamboolib as bam
bam

📢 Bamboolib:大文件读取

在这里,我们使用包含超过 100 万行的 CSV 大文件sales-data-1M来讲解操作和计算实现。

和 Mito 工具库一样,Bamboolib 也为我们生成代码如下

后续内容中我们只演示步骤,但会隐藏生成的代码,大家可以实际操作来查看生成的代码

import pandas as pd
df = pd.read_csv('./data/sales-data.csv', sep=',', decimal='.', nrows=100000)
df

📢 Bamboolib:新建列&统计计算

如果我们要创建一个新列,我们可以在搜索栏上搜索『列命名』操作,然后键入列公式。下图演示我们使用公式创建一个『价格』列 (revenue/quantity).

在这里插入图片描述

📢 Bamboolib:数据透视表

下面我们在搜索栏中输入『数据透视表』。 然后我们在数据行中按产品对数据进行分组,并使用『sum』作为聚合函数,整个操作如下图所示:

在这里插入图片描述

📢 Bamboolib:可视化&绘图

接下来,我们创建一个饼图。 我们点击『Create Plot』按钮,选择图形类型,然后选择我们想要显示的值。

在这里插入图片描述

📢 Bamboolib:信息/属性抽取

下面我们从『日期』列中提取属性,我们希望提取出月份,要完成这个操作,我们会将『日期』列的数据类型更改为 date(现在类型为 str),然后再提取属性。操作动图演示如下:

在这里插入图片描述

如果你对Python感兴趣的话,可以试试我整理的这份Python全套学习资料,微信扫描下方二维码免费领取

包括:Python永久使用安装包、Python web开发,Python,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!
在这里插入图片描述

零基础Python学习资源介绍

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python学习软件

工欲善其事,必先利其器。学习Python常用的开发软件都在这里了!
在这里插入图片描述

三、Python入门学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

四、Python练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

五、Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。这份资料也包含在内的哈~在这里插入图片描述

六、Python面试资料

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

七、资料领取

上述完整版Python全套学习资料已经上传CSDN官方,需要的小伙伴可自行微信扫描下方CSDN官方认证二维码输入“领取资料”免费领取!!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

这些PCB设计错误,依然有很多人再犯

在电子的设计制造中,PCB设计是至关重要的环节,尽管PCB设计的重要性得到了广泛认可,但依然有很多工程师在实践中犯下各种错误,本文凡小亿将盘点一些你没发现过的PCB设计错误,希望对小伙伴们有所帮助。 1、散热走线未能正…

四种方法,全面诊断库存管理的“死角”!

当今企业经营竞争环境的特点是:多品种、小批量、快速降价、产品生命周期短,这其实对企业的库存管理提出了高要求,库存在财务报表里是资产,但滞销(或滞用)的存货,就是将来要吃掉利润的成本&#…

idea项目中java类名出现带 j 小红点,如何解决?

目录 一、问题描述 二、问题解决方案 1、寻找异常问题 2、解决方案 2.1常规操作方法 2.2 快速操作方法 一、问题描述 一打开idea的java项目,发现所有的文件边上都有带J的大红点 虽然,在 git bash 中进行编译时无异常。 但是视觉上给人的感受就是…

如何自己生成fip.bin在Milkv-duo上跑freertos

前言 (1)PLCT实验室实习生长期招聘:招聘信息链接 (2)本来是要跑RT-Thread的,搞了很久,一直没成功。哭死,后面mentor通电话,让我先跑一下freertos试试。有可能是因为RT-Th…

nginx学习(3)

Nginx 负载均衡 实战案例 实现效果 浏览器地址栏输入地址 http://172.31.0.99/oa/a.html,负载均衡效果,平均 8083 和 8084 端口中 一、配置 1、先创建2个文件夹,并将apache-tomcat-8.5.87解压到tomcat8083和tomcat8084中 (或…

这8个Wireshark使用技巧,一看就会!

今天就给你分享8个常用的Wireshark使用技巧,一看就会。如果是处理 HTTP,HTTPS 大家还是用还是用 Fiddler,但如果是其他协议比如 TCP,UDP,还是用wireshark。 今天给你准备了wireshark和Fiddler的安装包给你&#xff0c…

湖科大计网:传输层

一、传输层概述 一、基本概念 传输层是端到端的协议。 因特网的两种不同的传输层协议: TCP:面向连接 UDP:无连接 我们在学习的过程中,只需要关注传输层之间的通信,不需要关注传输层协议数据是经过路由器转发至目的网络…

Python中用requests时遇到的错误警告解决方案

最近,我在Python 2.7.6(Ubuntu 14.04.2 LTS)环境中将requests库的版本从2.5.3升级到2.6.0,却遇到了’A true SSLContext object is not available’警告。每当我在Python 2.7.6环境中尝试使用requests库访问’github’时&#xff…

UDS寻址:物理寻址和功能寻址

ISO 15765-2中定义: 0x7DF通常是功能寻址请求。还有另外一组物理寻址的请求和响应。 ID 29bit的 低16 bit是TA和SA。高bit是车厂定义的。 功能寻址一般是18DBFFxx。物理寻址一般18DAxxxx。过滤还可以设置严格一点。

中小企业怎么实现数字化转型?有什么实用的工单管理系统?

当前,世界经济数字化转型已是大势所趋。在这个数字化转型的大潮中,如果企业仍然逆水而行,不随大流,那么,企业将有可能会被抛弃,被对手超越,甚至被市场边缘化,导致最终的结果是&#…

npm install 下载不下来依赖解决方案

背景 最近在构建 前端自动化部署 的方案中发现了一个问题,就是我在npm install的时候,有时候成功,有时候不成功,而且什么代码也没发生更改,报错也就是那么几个错,所以在此也整理了一下遇到这种情况&#xf…

Springcloud可视化物联网智慧工地云SaaS平台源码 支持二开和私有化部署

智慧工地平台围绕建筑施工人、物、事的安全管理为核心,对应研发了劳务实名制、视频监控、扬尘监测、起重机械安全监测、安全帽监测等功能一体化管理的解决方案。 智慧工地是聚焦工程施工现场,紧紧围绕人、机、料、法、环等关键要素,综合运用物…

这5款好用的app,能让你生活质量和效率飙升

随着科技的进步和智能手机的普及,不少好用的手机APP出现让我们的生活更加便捷,也提升了我们的生活质量,带给我们不少惊喜。接下来,让我们一起探索这5款实用APP,看看有没有适合你的! 1、粉笔 一款专门备考…

外贸自建站什么意思?自建独立网站的好处?

外贸自建站的含义是什么?如何区分自建站和独立站? 随着全球贸易的不断发展,越来越多的企业开始关注外贸自建站。那么,“外贸自建站”到底是什么意思呢?海洋建站将为您详细解析这个问题,带您深入了解这一新…

如何简单挖掘公益SRC?

目录 1、寻找漏洞 1)谷歌语法 2)fofa 2、挖掘漏洞 3、提交报告 第一步:“标题”和“厂商信息”和“所属域名” 第二步:其它内容 第三步:复现步骤 0、IP域名归属证明 1、漏洞页 2、该干啥 3、注入的结果 4、上榜吉时 时间&#x…

优步让一切人工智能化

优步(Uber)的商业模式建立在对数据的颠覆性使用上--通过将双方智能手机的位置数据关联起来,将出租车司机与乘客配对。这意味着,它可以比传统出租车公司更快地安排司机去接乘客,极大地冲击了传统出租车公司的业务。 优步自成立以来&#xff0…

Linux中安装部署环境(JAVA)

目录 在Linux中安装jdk 包管理器yum安装jdk JDK安装过程中的问题 验证安装jdk 在Linux中安装tomcat 安装mysql 在Linux中安装jdk jdk在Linux中的安装方式有很多种, 这里介绍最简单的方法, 也就是包管理器方法: 包管理器yum安装jdk Linux中常见的包管理器有: yumaptp…

国外客户发开发信怎么发?写外贸邮件方法?

如何给国外客户发开发信?给老外发外贸开发信的技巧? 与国外客户保持联系并积极开展业务合作变得至关重要。一种有效的方式是通过发展信件,这可以帮助建立关系、传递信息和促成商机。蜂邮将介绍如何向国外客户发开发信,以确保您的…

全屋智能:鱼很大,但水更深

1990年,作为世界首富的比尔盖茨,已经对智能家居生活有了明确畅想。他花了7年时间,耗资1亿多美元,在美国西雅图的华盛顿湖东岸,建了一座占地6600平方米的湖滨别墅。在这座被命名为“未来之屋”的豪宅里,到处…

超全毛玻璃图标教程,不看你就OUT了!

相比热衷于UI设计的朋友们,都曾经听说过玻璃拟态图标这个名词。玻璃拟态图标以其吸引人的外观和易于上手的特性,赢得了大家的青睐。在这篇文章中,将使用一款免费的在线图标设计工具Pixso,为你详解通过四个步骤,让你快速…