plydata包 - Python中的dplyr Pipe(管道)数据处理方式

plydata包模仿R的dplyr包,提供了管道操作%>%,便于数据处理。主要包括filter(), arrange(), slice(), select(), mutate(), summarise()等函数。文章通过实例展示了如何使用这些函数筛选、排序、选择和聚合数据,强调了plydata在Python数据分析中的应用。" 125288156,7391752,MATLAB案例分析:决策树在乳腺癌诊断中的应用,"['决策树学习', 'MATLAB仿真', '神经网络应用', '分类算法', '机器学习']
摘要由CSDN通过智能技术生成

Hassan Kibirige开发的plydata包借鉴了R dplyr包的语法以及实现了管道函数%>%,并且与该作者另一个包plotnine(类ggplot2语法绘图工具包),本文在于对plydata包语法的入门以及与dplyr包的对比,让对R熟悉的同学(比如我)更好的在python进行数据处理工作。

首先导入包以及数据集,数据集使用经典的nycflights13中的flights,这个数据集在python和R中均有包直接调用

# in R
library(dplyr)
library(nycflights13)

> head(flights)
# A tibble: 6 x 19
   year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay carrier flight tailnum origin dest  air_time distance  hour minute
  <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>     <dbl> <chr>    <int> <chr>   <chr>  <chr>    <dbl>    <dbl> <dbl>  <dbl>
1  2013     1     1      517            515         2      830            819        11 UA        1545 N14228  EWR    IAH        227     1400     5     15
2  2013     1     1      533            529         4      850            830        20 UA        1714 N24211  LGA    IAH        227     1416     5     29
3  2013     1     1      542            540         2      923            850        33 AA        1141 N619AA  JFK    MIA        160     1089     5     40
4  2013     1     1      544            545        -1     1004           1022       -18 B6         725 N804JB  JFK    BQN        183     1576     5     45
5  2013     1     1      554            600        -6      812            837       -25 DL         461 N668DN  LGA    ATL        116      762     6      0
6  2013     1     1      554            558        -4      740            728        12 UA        1696 N39463  EWR    ORD        150      719     5     58
# ... with 1 more variable: time_hour <dttm>
# in Python
import pandas as pd
import numpy as np
from plydata import *
from nycflights13 import flights

flights.head(6)
Out[]: 
   year  month  day  dep_time  ...  distance  hour  minute             time_hour
0  2013      1    1     517.0  ...      1400     5      15  2013-01-01T10:00:00Z
1  2013      1    1     533.0  ...      1416     5      29  2013-01-01T10:00:00Z
2  2013      1    1     542.0  ...      1089     5      40  2013-01-01T10:00:00Z
3  2013      1    1     544.0  ...      1576     5      45  2013-01-01T10:00:00Z
4  2013      1    1     554.0  ...       762     6       0  2013-01-01T11:00:00Z
5  2013      1    1     554.0  ...       719     5      58  2013-01-01T10:00:00Z

[6 rows x 19 columns]

Single Table Verbs

dplyr与plydata的数据处理逻辑为提供一个函数,仅仅执行一种Verb数据处理(data manipulation)。所有的Verbs可以归于以下三类:

    • filter() 根据条件筛选行 注:python中为query()
    • slice() 根据位置选择行
    • arrange() 排列行
    • select() 选择制定列
    • rename() 修改列名
    • mutate() 创建新列
    • relocate() 修改列顺序
  • 行聚合
    • summarise() 根据运算方式聚合为一行

Pipe - 管道操作

所有的dplyr与plydata函数均取data frame为第一个参数,所以与之每个函数中放入data frame,管道操作提供了一个数据处理的流水线,通过%>%>>符号实现。

filter()与query()

  • 选取数据集中飞行距离小于50英里的航班
# in R
> flights %>% filter(distance < 50)
# A tibble: 1 x 19
   year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay carrier flight tailnum origin dest  air_time distance  hour minute
  <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>     <dbl> <chr>    <int> <chr>   <chr>  <chr>    <dbl>    <dbl> <dbl>  <dbl>
1  2013     7    27       NA            106        NA  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值