前言

我经常使用R的dplyr软件包进行探索性数据分析和数据处理。 dplyr除了提供一组可用于解决最常见数据操作问题的一致函数外,dplyr还允许用户使用管道函数编写优雅的可链接的数据操作代码。

现在,Python是我的主要语言,pandas是我用于数据分析的助手,但我经常希望有一个Python包允许直接在pandas DataFrame上进行dplyr风格的数据操作。于是我找到了一个名为dfply的软件包,由Kiefer Katovich开发。 与dplyr一样,dfply也允许使用管道运算符链接多个操作。

这篇文章将重点介绍dfply包的核心功能,并展示如何使用它们来操作pandas DataFrames。

入门

我们需要做的第一件事是使用pip安装软件包。

pip install dfply

根据该项目的Github介绍,dfply仅适用于Python 3,因此请确保安装了正确版本的Python。

使用用dfply管道函数

ddfply直接在pandas DataFrames上工作,使用>>运算符链接对数据的操作,或者以>> =从inplace操作开始。 在dfply中,操作链的每个步骤的DataFrame结果由X表示。例如,如果要在步骤中从DataFrame中选择三列,请在下一步中删除第三列,然后显示最终数据的前三行,您可以执行以下操作:

# 'data' is the original pandas DataFrame

(data >>

select(X.first_col, X.second_col, X.third_col) >>

drop(X.third_col) >>

head(3))

select和drop都是dfply转换函数,而X代表每个转换步骤的结果。

使用select()和drop()选择和删除列

# 'data' is the original pandas DataFrame

(diamonds >>

select(X.carat, X.cut, X.color) >>

drop(X.cut) >>

head(3))

Out[10]:

carat color

0 0.23 E

1 0.21 E

2 0.23 E

diamonds >> drop(1, X.price, ['x', 'y']) >> head(2)

Out[26]:

carat color clarity depth table z

0 0.23 E SI2 61.5 55.0 2.43

1 0.21 E SI1 59.8 61.0 2.31

使用的数据集是经典的diamond数据集,通过上面的代码我们筛选了carat,cut和color三列然后删除了cut列

还可以通过在要删除的列的前面放置一个波浪号〜来删除select()方法中的列。

例如,要选择diamonds中除cut以外的所有已经选择列:

(diamonds >>

select(X.carat, X.cut, X.color) >>

select(~X.cut) >>

head(3))

Out[10]:

carat color

0 0.23 E

1 0.21 E

2 0.23 E

使用mask()过滤行

mask()允许您根据逻辑条件在pandas DataFrame中选择行的子集。 mask()选择条件为/的所有行。

例如,要选择carat > 0.21以及cut==’Fair同时price < 563的行:

df = (diamonds >>

select(X.carat, X.cut, X.price) >>

mask(X.carat > 0.21, X.cut=='Fair', X.price < 563))

df

Out[23]:

carat cut price

8 0.22 Fair 337

10030 0.30 Fair 416

28270 0.25 Fair 361

31611 0.23 Fair 369

31615 0.27 Fair 371

40591 0.30 Fair 496

40597 0.34 Fair 497

46961 0.37 Fair 527

48630 0.30 Fair 536

使用arrange()对行进行排序

arrange()允许您根据一列或多列来排序行; 默认行为是按升序对行进行排序。例如,要按carat,然后按price排序,我们会:

df = (diamonds >>

select(X.carat, X.cut, X.price) >>

mask(X.carat > 0.21, X.cut=='Fair', X.price < 563) >>

arrange(X.carat,X.price))

df

Out[27]:

carat cut price

8 0.22 Fair 337

31611 0.23 Fair 369

28270 0.25 Fair 361

31615 0.27 Fair 371

10030 0.30 Fair 416

40591 0.30 Fair 496

48630 0.30 Fair 536

40597 0.34 Fair 497

46961 0.37 Fair 527

python中显示第三行数据_Python从零开始第三章数据处理与分析①python中的dplyr(1)...相关推荐

  1. python从2 1 2 2 2 63_Python从零开始第三章数据处理与分析python中的dplyr(2)

    目录 第二章(pandas) Python从零开始第三章数据处理与分析python中的dplyr(2) =============================================== ...

  2. python中显示第三行数据_Python数据分析及可视化-小测验

    image.png 首先将5题的文件复制形成副本,如下图所示: image.png 在资源管理器的路径中输入cmd,如下图所示: image.png 在上图中输入后,按Enter键运行进入cmd窗口. ...

  3. python中显示第三行数据_在Python中Dataframe通过print输出多行时显示省略号的实例...

    笔者使用python进行数据分析时,通过print输出dataframe中的数据,当dataframe行数很多时,中间部分显示省略号,如下图所示: 0 项华祥 1 何炅 2 张艺飞 3 李仁港 4 崔 ...

  4. 禾赛40M如何成功在rviz中显示点云数据

    禾赛40M如何成功在rviz中显示点云数据 文章目录 禾赛40M如何成功在rviz中显示点云数据 前言 一.安装雷达的ROS驱动包 二.启动雷达 三.启动rviz查看点云 1.启动launch文件与r ...

  5. python爬取网页json数据_python爬取json数据库

    手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...

  6. qt在表格中如何画线_Qt如何在表格中显示和编辑数据

    请耐心等待,因为这是一个稍微有点主观的问题,但我知道最佳实践后可能是常见情况.Qt如何在表格中显示和编辑数据 我有拆分到其中我使用Qt来操纵多个(源码)表中的数据. (sql)视图是显示多个表中数据的 ...

  7. 从Python爬虫到Spark预处理数据的真实需求[三]

    絮叨两句: 博主是一名软件工程系的在校生,利用博客记录自己所学的知识,也希望能帮助到正在学习的同学们 人的一生中会遇到各种各样的困难和折磨,逃避是解决不了问题的,唯有以乐观的精神去迎接生活的挑战 少年 ...

  8. 【数据聚类】第三章第二节2:K-Means算法及其Python实现(算法实现、结果展示)

    pdf下载(密码:7281) 本文上接:[数据聚类]第三章第二节1:K-Means算法及其Python实现(距离度量方式.目标函数和算法流程) 本文下接:[数据聚类]第三章第二节3:K-Means算法 ...

  9. sql查询当天交易总额最大的用户信息_如何分析交易记录? 因为后面要分析“每种类型用户的总交易金额”,所以保留左表(用户交易记录表)中的全部用户数据。 【题目】 某商场为了分析用... - 雪球...

    来源:雪球App,作者: 猴子数据分析,(https://xueqiu.com/1350621016/159703178) 因为后面要分析"每种类型用户的总交易金额",所以保留左表 ...

最新文章

  1. C++11中头文件thread的使用
  2. 数据预处理(完整步骤)
  3. Python,你应该小心的逗号!一步错步步错
  4. Linux下MySQL数据库的备份与还原,mysql快速导入导出数据库实例演示,解决mysql大数据量数据库导出慢的问题
  5. 第5章 线性回归算法
  6. gridstack 宽度改变_Model Y在Model 3有哪些改变?
  7. 一个强大的工具来模拟数百万​​并发用户负载测试:Gryphon
  8. nginx nodejs环境配置_Linux 环境变量配置(Nodejs/MongoDB/JDK/Nginx)
  9. 广东石油化工学院大学计算机基础,大学计算机基础习题集-北京石油化工学院文档.doc...
  10. Javascript特效:图片切换
  11. C语言队列的基本实现
  12. 代做linux作业,Linux系统管理第七周作业【Linux微职位】(示例代码)
  13. dubbo的版本升级和-Xss的错误设置导致项目启动失败
  14. 微信点赞功能测试用例
  15. 一步一步来制作CSS3 3D旋转相册
  16. 单片机实现跑马灯c语言程序,用单片机编写几种跑马灯程序
  17. vue实现点击变色再次点击变回来
  18. 蜗牛星际能做网站服务器吗,蜗牛星际-完美运行ESXI
  19. python爬取加密qq空间_python3.7 爬取QQ空间好友
  20. 计算机信息检索课程小结,计算机信息检索课程教案.doc

热门文章

  1. Kubernetes基础文档(链接,下载,安装,架构)
  2. Xamarin.Android SharedPreferences的使用方法
  3. 如何获取客户端的真实IP
  4. 马哥-51CTO-Linux培训-0910-程序包管理
  5. DNS之三 辅助区域和名称解析过程
  6. dbgrid的最小高度设置。否则出现滚动条。
  7. 当你扛不住的时候就读读
  8. 小女子需要各位博友帮忙—— 一个关于JS 动态表格合并拆分问题
  9. 保存Activity的状态
  10. C# 文件搬运(从一个文件夹Copy至另一个文件夹)