hi,我是为你们的xio习操碎了心的和鲸社区男运营

我们的网站:和鲸社区 Kesci.com

我们的微信公众号:和鲸社区(ID:heywhale-kesci)

有干货,来!

之前品鉴过各个大佬写的Pandas教程,包括我司自己也有类似的明星教程(50道练习带你玩转Pandas)。但最近和一些想转行想要学习Pandas的宝宝们交流了,就觉得这些教程写得好是好,就是没内味儿。Excel毕竟是图形化界面,交互也经过了那么多年风风雨雨的迭代,着实好用,一下换成编程语言来表达自己的想法,还令人挺难转过弯的。

所以,我们此次特地向和鲸社区的优质创作者们邀稿,用图文并茂的形式给大家逐帧呈现Excel的日常操作如何用Pandas完成

点击下方链接,查看完整项目,及直接在线运行用Python展示Excel中20个常用操作​www.kesci.com

项目作者: @刘早起

数据读取

说明:读取本地Excel数据ExcelPandas

Pandas支持读取本地Excel、txt文件,也支持从网页直接读取表格数据,只用一行代码即可,例如读取上述本地Excel数据可以使用pd.read_excel("示例数据.xlsx")

数据生成

说明:生成指定格式/数量的数据Excel

以生成10*2的0—1均匀分布随机数矩阵为例,在Excel中需要使用rand()函数生成随机数,并手动拉取指定范围Pandas

在Pandas中可以结合NumPy生成由指定随机数(均匀分布、正态分布等)生成的矩阵,例如同样生成10*2的0—1均匀分布随机数矩阵为,使用一行代码即可:pd.DataFrame(np.random.rand(10,2))

数据存储

说明:将表格中的数据存储至本地Excel

在Excel中需要点击保存并设置格式/文件名Pandas

在Pandas中可以使用pd.to_excel("filename.xlsx")来将当前工作表格保存至当前目录下,当然也可以使用to_csv保存为csv等其他格式,也可以使用绝对路径来指定保存位置

数据筛选

说明:按照指定要求筛选数据Excel

使用我们之前的示例数据,在Excel中筛选出薪资大于5000的数据步骤如下Pandas

在Pandas中,可直接对数据框进行条件筛选,例如同样进行单个条件(薪资大于5000)的筛选可以使用df[df['薪资水平']>5000],如果使用多个条件的筛选只需要使用&(并)与|(或)操作符实现

数据插入

说明:在指定位置插入指定数据Excel

在Excel中我们可以将光标放在指定位置并右键增加一行/列,当然也可以在添加时对数据进行一些计算,比如我们就可以使用IF函数(=IF(G2>10000,"高","低")),将薪资大于10000的设为高,低于10000的设为低,添加一列在最后Pandas

在pandas中,如果不借助自定义函数的话,我们可以使用cut方法来实现同样操作

数据删除

说明:删除指定行/列/单元格Excel

在Excel删除数据十分简单,找到需要删除的数据右键删除即可,比如删除刚刚生成的最后一列Pandas

在pandas中删除数据也很简单,比如删除最后一列使用del df['new_col']即可

数据排序

说明:按照指定要求对数据排序Excel

在Excel中可以点击排序按钮进行排序,例如将示例数据按照薪资从高到低进行排序可以按照下面的步骤进行Pandas

在pandas中可以使用sort_values进行排序,使用ascending来控制升降序,例如将示例数据按照薪资从高到低进行排序可以使用df.sort_values("薪资水平",ascending=False,inplace=True)

缺失值处理

说明:对缺失值(空值)按照指定要求处理Excel

在Excel中可以按照查找—>定位条件—>空值来快速定位数据中的空值,接着可以自己定义缺失值的填充方式,比如将缺失值用上一个数据进行填充Pandas

在pandas中可以使用data.isnull().sum()来检查缺失值,之后可以使用多种方法来填充或者删除缺失值,比如我们可以使用df = df.fillna(axis=0,method='ffill')来横向/纵向用缺失值前面的值替换缺失值

数据去重

说明:对重复值按照指定要求处理Excel

在Excel中可以通过点击数据—>删除重复值按钮并选择需要去重的列即可,例如对示例数据按照创建时间列进行去重,可以发现去掉了196 个重复值,保留了 629 个唯一值。Pandas

在pandas中可以使用drop_duplicates来对数据进行去重,并且可以指定列以及保留顺序,例如对示例数据按照创建时间列进行去重df.drop_duplicates(['创建时间'],inplace=True),可以发现和Excel处理的结果一致,保留了 629 个唯一值。

格式修改

说明:修改指定数据的格式Excel

在Excel中可以选中需要转换格式的数据之后右键—>修改单元格格式来选择我们需要的格式Pandas

在Pandas中没有一个固定修改格式的方法,不同的数据格式有着不同的修改方法,比如类似Excel中将创建时间修改为年-月-日可以使用df['创建时间'] = df['创建时间'].dt.strftime('%Y-%m-%d')

数据交换

说明:交换指定数据Excel

在Excel中交换数据是很常用的操作,以交换示例数据中地址与岗位两列为例,可以选中地址列,按住shift键并拖动边缘至下一列松开即可Pandas

在pandas中交换两列也有很多方法,以交换示例数据中地址与岗位两列为例,可以通过修改列号来实现

数据合并

说明:将两列或多列数据合并成一列Excel

在Excel中可以使用公式也可以使用Ctrl+E快捷键完成多列合并,以公式为例,合并示例数据中的地址+岗位列步骤如下Pandas

在Pandas中合并多列比较简单,类似于之前的数据插入操作,例如合并示例数据中的地址+岗位列使用df['合并列'] = df['地址'] + df['岗位']

数据拆分

说明:将一列按照规则拆分为多列Excel

在Excel中可以通过点击数据—>分列并按照提示的选项设置相关参数完成分列,但是由于该列含有[]等特殊字符,所以需要先使用查找替换去掉Pandas

在Pandas中可以使用.split来完成分列,但是在分列完毕后需要使用merge来将分列完的数据添加至原DataFrame,对于分列完的数据含有[]字符,我们可以使用正则或者字符串lstrip方法进行处理,但因不是pandas特性,此处不再展开。

数据分组

说明:对数据进行分组计算Excel

在Excel中对数据进行分组计算需要先对需要分组的字段进行排序,之后可以通过点击分类汇总并设置相关参数完成,比如对示例数据的学历进行分组并求不同学历的平均薪资Pandas

在Pandas中对数据进行分组计算可以使用groupby轻松搞定,比如使用df.groupby("学历").mean()一行代码即可对示例数据的学历进行分组并求不同学历的平均薪资,结果与Excel一致

数据计算

说明:对数据进行一些计算Excel

在Excel中有很多计算相关的公式,比如可以使用COUNTIFS来统计薪资大于10000的岗位数量有518个Pandas

在Pandas中可以直接使用类似数据筛选的方法来统计薪资大于10000的岗位数量len(df[df["薪资水平"]>10000])

数据统计

说明:对数据进行一些统计计算Excel

在Excel中有很多统计相关的公式,也有现成的分析工具,比如对薪资水平列进行描述性统计分析,可以通过添加工具库之后点击数据分析按钮并设置相关参数Pandas

在pandas中也有现成的函数describe快速完成对数据的描述性统计,比如使用df["薪资水平"].describe()即可得到薪资列的描述性统计结果

数据可视化

说明:对数据进行可视化Excel

在Excel中可以通过点击插入并选择图表来快速完成对数据的可视化,比如制作薪资的直方图,并且有很多样式可以直接使用Pandas

在Pandas中也支持直接对数据绘制不同可视化图表,例如直方图,可以使用plot或者直接使用hist来制作df["薪资水平"].hist()

数据抽样

说明:对数据按要求采样Excel

在Excel中抽样可以使用公式也可以使用分析工具库中的抽样,但是仅支持对数值型的列抽样,比如随机抽20个示例数据中薪资的样本Pandas

在pandas中有抽样函数sample可以直接抽样,并且支持任意格式的数据抽样,可以按照数量/比例抽样,比如随机抽20个示例数据中的样本

数据透视表

说明:制作数据透视表Excel

数据透视表是一个非常强大的工具,在Excel中有现成的工具,只需要选中数据—>点击插入—>数据透视表即可生成,并且支持字段的拖取实现不同的透视表,非常方便,比如制作地址、学历、薪资的透视表Pandas

在Pandas中制作数据透视表可以使用pivot_table函数,例如制作地址、学历、薪资的透视表pd.pivot_table(df,index=["地址","学历"],values=["薪资水平"]),虽然结果一样,但是并没有Excel一样方便调整与多样

vlookup

说明:利用VLOOKUP查找数据Excel

VLOOKUP算是EXCEL中最核心的功能之一了,我们用一个简单的数据来进行示例Pandas

在Pandas中没有现成的vlookup函数,所以实现匹配查找需要一些步骤,首先我们读取该表格

接着将该dataframe切分为两个

最后修改索引并使用update进行两表的匹配

结束语

以上就是使用Pandas来演示如何实现Excel中的常用操作的全部过程,其实可以发现Excel的优点就是大多由交互式的点击完成数据处理,而Pandas则完全依赖于代码,对于有些操作比如数据透视表,用Excel制作更加方便,而有些操作比如数据的分组、计算等,因Pandas可以与NumPy等其他优秀的Python库结合而显得更加强大,所以我们在处理数据时也需要正确选择使用的工具!

文末复读机

点击下方链接,查看完整项目,及直接在线运行用Python展示Excel中20个常用操作​www.kesci.com

pandas 排序 给excel_给Excel重度用户准备的Pandas教程:用Pandas逐帧还原20个Excel常用操作...相关推荐

  1. pandas 排序 给excel_懂Excel轻松入门Python数据分析包pandas(二十五):循环序列分组...

    此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...

  2. Excel控件 Spire.XLS系列教程(2):C# 设置现有 Excel 图表的数据标签样式

    Spire.XLS是一款专业的Excel控件,无需安装微软Excel,也能拥有Excel的全套功能,能够为工厂智能化提供完善的Excel需求. Excel中图表的数据标签不仅可以增强图表的可读性,还可 ...

  3. pandas 排序_懂Excel就能轻松入门Python数据分析包pandas(六):排序

    转发本文并私信我"python",即可获得Python资料以及各种心得(持续更新的) 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死.后来 ...

  4. python对excel操作简书_Python实现EXCEL常用操作——pandas简介

    知乎的代码块太丑了,这里的内容就更新到简书了Python实现EXCEL常用操作--pandas简介​www.jianshu.com EXCEL是日常办公最常用的软件,然而遇到数据量特别大(超过10W条 ...

  5. python根据频率画出词云_利用pandas+python制作100G亚马逊用户评论数据词云

    原标题:利用pandas+python制作100G亚马逊用户评论数据词云 数据挖掘入门与实战 公众号: datadw 我们手里面有一个差不多100G的亚马逊用户在购买商品后留下的评论数据(数据格式为j ...

  6. pandas 排序一个变量

    pandas排序一个变量可以使用 df2.sort_values(by=['year', 'title2'], axis=0, inplace=True, ascending=[False, Fals ...

  7. Java黑皮书课后题第3章:*3.8(对三个整数排序)编写程序,提示用户输入三个整数,以非降序的形式显示这三个整数

    *3.8(对三个整数排序)编写程序,提示用户输入三个整数,以非降序的形式显示这三个整数 题目 题目概述 破题 代码 如何理解值的互换 题目 题目概述 *3.8(对三个整数排序)编写程序,提示用户输入三 ...

  8. c++控制台应用每一列数据如何对齐_懂Excel就能轻松入门Python数据分析包pandas(十六):合并数据...

    此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...

  9. excel中如何动态地创建控件以显示查询结果_一起学Excel专业开发02:专家眼中的Excel及其用户...

    学习Excel技术,关注微信公众号: excelperfect 对于大多数人来说,使用Excel来做的工作就是在单元格中输入数据,进行一些格式化制作成报表输出,在这个过程中,可能会使用一些公式,可能会 ...

最新文章

  1. Task05:青少年软件编程(Python)等级考试模拟卷(一级)
  2. python3 AES 加解密
  3. 欧拉函数(简单介绍+例题)
  4. el-table表格格式化某一列数据;统一处理el-table表格某一列数据
  5. Axure在SVN共享项目如何获取历史文件
  6. SSM 框架整合 spring 发送邮件功能实现!
  7. linux -rpm,linux 的rpm命令
  8. vba 添加outlook 签名_利用VBA发送附件电子邮件
  9. java中改变文本字体和大小_Java实训——编写一个窗体程序,可以对文本区中的文字设置字体和大小。...
  10. 文件读写和字符串、列表的排序
  11. 使用 lanmps 环境套件安装设置新站点 案例
  12. 【题解】P2854 [USACO06DEC]牛的过山车Cow Roller Coaster
  13. Anylogic遇到问题的解决
  14. OA项目之我的审批(查询会议签字)
  15. PL/SQL中declare、begin关键字解释
  16. 最新数据库设计实战应用案例--合同管理系统 非常经典的数据库设计案例教学 数据库设计
  17. web咸鱼自救攻略--typescript的类没有你想象中的那么难
  18. 直方图实现快速中值滤波opencv
  19. 使用键盘发布手柄控制信息
  20. 云计算openstack——云计算、大数据、人工智能(16)

热门文章

  1. java 影子实例_java设计模式(四)--单例模式
  2. 【Axure视频教程】固定中继器表格首行首列
  3. H5实现摇一摇技术总结
  4. [玩转Linux] [Docker] MySQL安装和配置
  5. 大咖专栏 | 我在DevCloud做需求
  6. 【R语言-生存分析之观察生存率计算】
  7. 安徽庐江:庐江县文联来我镇开展义务送春联活动
  8. win10 minikube镜像位置_只需3步!教你打造精简win10,去除系统自带程序,运行更快!...
  9. Android应用内设置多语言
  10. 【R】曾惊艳全世界的“中国乐高”!清华建筑师都忍不住夸,全榫卯造“600年福殿”!