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

前言

我经常使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值