在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Pandas如何使用GroupBy分组

123次阅读
没有评论

共计 3051 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要介绍 Pandas 如何使用 GroupBy 分组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

groupby 对象

import pandas as pd
import numpy as np
df = pd.DataFrame({A  : [ foo ,  bar ,  foo ,  bar ,  foo ,  bar ,  foo ,  foo],  B  : [one ,  one ,  two ,  three ,  two ,  two ,  one ,  three],  C  : np.random.randn(8),  D  : np.random.randn(8)})
gb.groupby(A)
print(df.groupby( A))
 pandas.core.groupby.DataFrameGroupBy object at 0x00000000042F3470 
In [26]: gb. TAB 
gb.agg gb.boxplot gb.cummin gb.describe gb.filter gb.get_group gb.height gb.last gb.median gb.ngroups gb.plot gb.rank gb.std gb.transform
gb.aggregate gb.count gb.cumprod gb.dtype gb.first gb.groups gb.hist gb.max gb.min gb.nth gb.prod gb.resample gb.sum gb.var
gb.apply gb.cummax gb.cumsum gb.fillna gb.gender gb.head gb.indices gb.mean gb.name gb.ohlc gb.quantile gb.size gb.tail gb.weight

分组迭代 Iterating through groups

In [41]: grouped = df.groupby(A)
In [42]: for name, group in grouped:
 ....: print(name)
 ....: print(group)
 ....: 
 A B C D1 bar one -0.042379 -0.0893293 bar three -0.009920 -0.9458675 bar two 0.495767 1.956030foo
 A B C D0 foo one -0.919854 -1.1313452 foo two 1.247642 0.3378634 foo two 0.290213 -0.9321326 foo one 0.362949 0.0175877 foo three 1.548106 -0.016692

获得一个分组 get_group

In [44]: grouped.get_group(bar)Out[44]: 
 A B C D1 bar one -0.042379 -0.0893293 bar three -0.009920 -0.9458675 bar two 0.495767 1.956030

使用多种函数 agg() 相同的函数

In [56]: grouped = df.groupby(A)In [57]: grouped[C].agg([np.sum, np.mean, np.std])Out[57]: 
 sum mean stdA 
bar 0.443469 0.147823 0.301765foo 2.529056 0.505811 0.966450

不同的函数

In [60]: grouped.agg({ C  : np.sum,
 ....:  D  : lambda x: np.std(x, ddof=1)})
 ....: 
Out[60]: 
 C D
A 
bar 0.443469 1.490982foo 2.529056 0.645875

转变数据框 transformation

转变函数(transform)中需要返回一个和分组块(group chunk)同样大小的结果,比如我们需要标准化每一个分组的数据:

In [66]: index = pd.date_range(10/1/1999 , periods=1100)
In [67]: ts = pd.Series(np.random.normal(0.5, 2, 1100), index)
In [68]: ts = ts.rolling(window=100,min_periods=100).mean().dropna()
In [71]: key = lambda x: x.year#使用年来分组 In [72]: zscore = lambda x: (x - x.mean()) / x.std()#标准化 In [73]: transformed = ts.groupby(key).transform(zscore)# 使用索引的年份来分组,然后标准化各组数据 In [80]: compare = pd.DataFrame({Original : ts,  Transformed : transformed})#  做出图形 

过滤 Filtration

filter 方法返回一个子集(subset)。比如我们只想要组长度大于 2 的分组:

In [105]: dff = pd.DataFrame({A : np.arange(8),  B : list(aabbbbcc)})
In [106]: dff.groupby(B).filter(lambda x: len(x)   2)
Out[106]: 
 A B2 2 b3 3 b4 4 b5 5 b

灵活运用 apply

In [123]: df
Out[123]: 
 A B C D0 foo one -0.919854 -1.1313451 bar one -0.042379 -0.0893292 foo two 1.247642 0.3378633 bar three -0.009920 -0.9458674 foo two 0.290213 -0.9321325 bar two 0.495767 1.9560306 foo one 0.362949 0.0175877 foo three 1.548106 -0.016692In [124]: grouped = df.groupby(A)# could also just call .describe()In [125]: grouped[C].apply(lambda x: x.describe())
Out[125]: 
A 
bar count 3.000000 mean 0.147823 std 0.301765 min -0.042379 25% -0.026149 50% -0.009920 75% 0.242924... 
foo mean 0.505811 std 0.966450 min -0.919854 25% 0.290213 50% 0.362949 75% 1.247642 max 1.548106Name: C, dtype: float64

以上是“Pandas 如何使用 GroupBy 分组”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-17发表,共计3051字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 免费一级黄色录像影片 | 久久精品久久精品久久 | 日韩一级视频免费观看 | 国产精品嫩草影院免费 | 成人在线视频网站 | 久久精品国产69国产精品亚洲 | 丁香五月天综合缴情网 | 偷拍亚洲欧美 | 91-69蝌蚪| 国内外成人免费视频 | 日韩区在线 | 忘忧草日本在线www 忘忧草视频www | 欧美午夜影院 | 内射老妇bbwx0c0ck | 天天干天天摸 | 黄网站视频在线观看 | 久久草草亚洲蜜桃臀 | 美女被啪到哭网站在线观看 | 一本大道熟女人妻中文字幕在线 | 玩弄中年熟妇正在播放 | 亚洲处破女av日韩精品 | 台湾娱乐中文网22www | 一级片视频免费看 | 91网站在线免费观看 | 成人午夜精品视频在线观看 | 另类视频一区 | 精品国产一区二区三区免费 | 色噜噜噜噜亚洲第一 | 美女黄网站色一级毛片 | 91嫩草视频在线观看 | 国产xxx69麻豆国语对白 | 久久综合热 | 亚洲国产一区二区三区四区 | 蝌蚪久久窝 | 丁香五香天堂网 | 免费a级毛片18禁网站免费 | 乱精品一区字幕二区 | 亚洲精品无码久久不卡 | 在线观看 亚洲 | 首页 综合国产 亚洲 丝袜 | 国产精品久久久久久久久久久不卡 |