matlab+cummean,Python从零开始第三章数据处理与分析python中的dplyr(5)

目录

第二章(pandas)

Python从零开始第三章数据处理与分析python中的dplyr(5)

===============================================

summarize()函数

summarize可以接受任意数量的关键字参数,这些参数将返回标有键的新列,这些键是原始DataFrame中列的汇总函数。

diamonds >> summarize(price_mean=X.price.mean(), price_std=X.price.std())

price_mean price_std

0 3932.799722 3989.439738

通过这一步可以很简单求得price列的平均值与标准差

summarize() 可以很好的搭配group_by函数

diamonds >> group_by('cut') >> summarize(price_mean=X.price.mean(), price_std=X.price.std())

cut price_mean price_std

0 Fair 4358.757764 3560.386612

1 Good 3928.864452 3681.589584

2 Ideal 3457.541970 3808.401172

3 Premium 4584.257704 4349.204961

4 Very Good 3981.759891 3935.862161

通过这一步可以求得cut列每一类的各自的平均值与标准差

summarize_each()函数

summarize_each(function_list, *columns)更常用,它可以比较方便的计算数据框中的列的一些属性。

diamonds >> summarize_each([np.mean, np.var], X.price, 'depth')

price_mean price_var depth_mean depth_var

0 3932.799722 1.591533e+07 61.749405 2.052366

summarize_each() 同样可以与group_by连用。

diamonds >> group_by(X.cut) >> summarize_each([np.mean, np.var], X.price, 4)

cut price_mean price_var depth_mean depth_var

0 Fair 4358.757764 1.266848e+07 64.041677 13.266319

1 Good 3928.864452 1.355134e+07 62.365879 4.705224

2 Ideal 3457.541970 1.450325e+07 61.709401 0.516274

3 Premium 4584.257704 1.891421e+07 61.264673 1.342755

4 Very Good 3981.759891 1.548973e+07 61.818275 1.900466

lead()和lag()函数

lead(series,n)函数向上推动向量中的值,在末尾位置添加NaN值。 同样,lag函数向下推动值,在初始位置插入NaN值。

(diamonds >> mutate(price_lead=lead(X.price, 2), price_lag=lag(X.price, 2)) >>

select(X.price, -2, -1) >>

head(6))

price price_lag price_lead

0 326 NaN 327.0

1 326 NaN 334.0

2 327 326.0 335.0

3 334 326.0 336.0

4 335 327.0 336.0

5 336 334.0 337.0

between() 函数

between函数检查值是否在两个给定的范围之间。

diamonds >> select(X.price) >> mutate(price_btwn=between(X.price, 330, 340)) >> head(6)

price price_btwn

0 326 False

1 326 False

2 327 False

3 334 True

4 335 True

5 336 True

dense_rank() 函数

计算重复的排序值或者秩

diamonds >> select(X.price) >> mutate(price_drank=dense_rank(X.price)) >> head(6)

price price_drank

0 326 1.0

1 326 1.0

2 327 2.0

3 334 3.0

4 335 4.0

5 336 5.0

min_rank() 函数

类似于dense_rank() 函数,但两者有区别

diamonds >> select(X.price) >> mutate(price_mrank=min_rank(X.price)) >> head(6)

price price_mrank

0 326 1.0

1 326 1.0

2 327 3.0

3 334 4.0

4 335 5.0

5 336 6.0

cumsum() 函数

cumsum() 函数计算列的累积和。

diamonds >> select(X.price) >> mutate(price_cumsum=cumsum(X.price)) >> head(6)

price price_cumsum

0 326 326

1 326 652

2 327 979

3 334 1313

4 335 1648

5 336 1984

cummean() 函数

cummean() 函数计算列的累积平均值。

diamonds >> select(X.price) >> mutate(price_cummean=cummean(X.price)) >> head(6)

price price_cummean

0 326 326.000000

1 326 326.000000

2 327 326.333333

3 334 328.250000

4 335 329.600000

5 336 330.666667

cummax() 函数

cummax() 函数计算列的累积最大值。

diamonds >> select(X.price) >> mutate(price_cummax=cummax(X.price)) >> head(6)

price price_cummax

0 326 326.0

1 326 326.0

2 327 327.0

3 334 334.0

4 335 335.0

5 336 336.0

cummin() 函数

cummin() 函数计算列的累积最小值。

diamonds >> select(X.price) >> mutate(price_cummin=cummin(X.price)) >> head(6)

price price_cummin

0 326 326.0

1 326 326.0

2 327 326.0

3 334 326.0

4 335 326.0

5 336 326.0

cumprod() 函数

cumprod() 函数计算列的累积乘积。

diamonds >> select(X.price) >> mutate(price_cumprod=cumprod(X.price)) >> head(6)

price price_cumprod

0 326 326

1 326 106276

2 327 34752252

3 334 11607252168

4 335 3888429476280

5 336 1306512304030080