python数组分类统计_python 数组元素数据聚合与分组运算——数据聚合(2)

数据聚合与分组运算——数据聚合(2),有需要的朋友可以参考下。

1、quantile计算Series或DataFrame列的样本分位数:

>>> import numpy as np

>>> import pandas as pd

>>> df = pd.DataFrame({'key1':['a', 'a', 'b', 'b', 'a'],

... 'key2':['one', 'two', 'one', 'two', 'one'],

... 'data1':np.random.randn(5),

... 'data2':np.random.randn(5)})

>>> df

data1 data2 key1 key2

0 0.228507 -1.820634 a one

1 -1.253050 0.285551 a two

2 1.412322 1.985010 b one

3 1.080160 -0.125354 b two

4 0.077132 -1.168355 a one

>>> grouped = df.groupby('key1')

>>> grouped

>>> grouped['data1']

>>> grouped['data1'].quantile(0.9)

key1

a 0.198232

b 1.379106

dtype: float64说明:

(1)虽然quantile并没有明确地实现于GroupBy,但它是一个Series方法,所以这里是能用的。实际上,GroupBy会高效地对Series进行切片,然后对各片调用piece.quantile(0.9),最后将这些结果组装成最终结果。

(2)如果传入的百分位上没有值,则quantile会进行线性插值。

(3)四分位数(Quartile),即统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的得分就是四分位数。

(4)线性插值经常用于补充表格中的间隔部分。假设一个表格列出了一个国家 1970年、1980年、1990年以及 2000年的人口,那么如果需要估计 1994年的人口的话,线性插值就是一种简便的方法。

2、有些方法(如describe)也是可以用在这里的,即时严格来讲,它们并非聚合运算:

>>> grouped.describe()

data1 data2

key1

a count 3.000000 3.000000

mean -0.315804 -0.901146

std 0.815200 1.078218

min -1.253050 -1.820634

25% -0.587959 -1.494495

50% 0.077132 -1.168355

75% 0.152819 -0.441402

max 0.228507 0.285551

b count 2.000000 2.000000

mean 1.246241 0.929828

std 0.234874 1.492253

min 1.080160 -0.125354

25% 1.163201 0.402237

50% 1.246241 0.929828

75% 1.329282 1.457419

max 1.412322 1.985010

经过优化的groupby的方法

函数名

说明

count

分组中非NA值的数量

sum

非NA值的和

mean

非NA值的平均数

median

非NA值的算术中位数

std、var

无偏(分母为n-1)标准差和方差

min、max

非NA值的最小值和最大值

prod

非NA值的积

first、last

第一个和最后一个非NA值

3、面向列的多函数应用

对Series或DataFrame列的聚合运算其实就是使用aggregate(使用自定义函数)或者调用mean、std之类的方法。然而,可能希望对不同的列使用不同的聚合函数,或一次应用多个函数,其实这也好办。根据sex和smoker对tips进行分组:

>>> import numpy as np

>>> import pandas as pd

>>> tips = pd.read_csv('tips.csv')

>>> # 添加“小费占总额百分比”的列

>>> tips['tip_pct'] = tips['tip']/tips['total_bill']

>>> tips[:6]

total_bill tip sex smoker day time size tip_pct

0 16.99 1.01 Female No Sun Dinner 2 0.059447

1 10.34 1.66 Male No Sun Dinner 3 0.160542

2 21.01 3.50 Male No Sun Dinner 3 0.166587

3 23.68 3.31 Male No Sun Dinner 2 0.139780

4 24.59 3.61 Female No Sun Dinner 4 0.146808

5 25.29 4.71 Male No Sun Dinner 4 0.186240

更多:python 数组元素数据聚合与分组运算——数据聚合(2)

https://www.002pc.comhttps://www.002pc.com/python/1406.html

你可能感兴趣的聚合,数据,分组,运算

No alive nodes found in your cluster

0踩

0 赞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值