Pandas 逐列分组
在本教程中,我们将讨论pandas的逐列分组。无论你是刚开始接触pandas,需要掌握被认为是它的核心功能之一,还是想填补你对.groupby()知识的空缺,本学术将帮助你解构和可视化pandas的GroupBy操作。很有帮助。从开始到结束。这个学术应该是通过演示独立的大块的例子来补充正宗的Pandas文档和烹饪书。但我们在这里可以关注三个使用实际数据集的额外复杂教程。
Python是一种伟大的信息分析语言,因为它有一个伟大的环境,更多时候是以记录为中心的Python包。Pandas是这些包中的一个,它简化了信息的上传和分析。Pandas groupby用于按类别对数据进行分组,并对类别应用函数。它还可以帮助你有效地汇总数据。Pandas的函数dataframe.groupby()根据某些标准将数据分成若干组。Pandas的项目可以在任何轴上进行分解。分组的概要定义是将标签映射到机构名称。每个groupby操作包括对原始对象的以下操作之一。-
- 拆分对象
- 应用函数
- 合并结果
通常,你把你的数据分成几组,并对每个子集应用一个函数。应用函数使你能够。-
- 聚合 – 计算汇总统计
- 变换– 执行针对组的操作
- 过滤 – 在特定条件下丢弃数据
Groupby列Pandas的语法
groupby()列pandas的语法如下所示
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
Groupby列Pandas的参数
groupby()列pandas的参数如下。
- by: 映射、函数、str或iterable
- axis: int,默认为0
- level: 如果轴是MultiIndex(分层的),按一个或多个特定的级别分组索引。最简单的是适用于DataFrame输入。as_index=false是有效的 “sq.-style “聚类输出。
- sort: 排序组键。禁用这个会提高性能。注意,这并不影响每个机构内的观察值的顺序。groupby保留了每个机构内的行的顺序。
- group_keys: 向索引上传组织键,以便在调用实践时识别部分。
- Squeeze: 如果可能的话,减少返回种类的维度。在任何其他情况下都会返回一个常量类型。
Groupby column Pandas的返回值
Groupby列pandas返回Groupby对象的值。
例子1:
在这里,我们给出一个groupby列pandas的例子。下面给出了这个例子。
import pandas as pd
ipl_data = {'Name': ['Priya', 'Rudra', 'Dev', 'Nisha', 'Arpita',
'Shipra', 'Kakali', 'Kunal', 'Neha', 'Rup', 'Rim', 'Ram'],
'Rank': [1, 2, 3, 4, 5,6 ,7 ,8,9 , 10,11,12],
'DOB': [2000,2000,2002,1999,2001,2000,1998,1999,2000,2002,2001,2000],
'Points':[676,709,963,873,790,802,956,688,794,801,890,890]}
df = pd.DataFrame(ipl_data)
print (df)
输出: 现在我们编译上述程序,编译成功后,我们运行它。
Name Rank DOB Points
0 Priya 1 2000 676
1 Rudra 2 2000 709
2 Dev 3 2002 963
3 Nisha 4 1999 873
4 Arpita 5 2001 790
5 Shipra 6 2000 802
6 Kakali 7 1998 956
7 Kunal 8 1999 688
8 Neha 9 2000 794
9 Rup 10 2002 801
10 Rim 11 2001 890
11 Ram 12 2000 890
例子2: 在这里,我们举一个groupby列pandas的例子。下面给出的例子是 –
import pandas as pd
ipl_data = {'Name': ['Priya', 'Rudra', 'Dev', 'Nisha', 'Arpita',
'Shipra', 'Kakali', 'Kunal', 'Neha', 'Rup', 'Rim', 'Ram'],
'Rank': [1, 2, 3, 4, 5,6 ,7 ,8, 9, 10,11,12],
'DOB': [2000,2000,2002,1999,2001,2000,1998,1999,2000,2002,2001,2000],
'Points':[676,709,963,873,790,802,956,688,794,801,890,890]}
df = pd.DataFrame(ipl_data)
print (df.groupby(['Name','DOB']).groups)
输出
现在我们编译上述程序,编译成功后,我们运行它。那么结果如下
{('Arpita', 2001): [4], ('Dev', 2002): [2], ('Kakali', 1998): [6], ('Kunal', 1999): [7], ('Neha', 2000): [8], ('Nisha', 1999): [3], ('Priya', 2000): [0], ('Ram', 2000): [11], ('Rim', 2001): [10], ('Rudra', 2000): [1], ('Rup', 2002): [9], ('Shipra', 2000): [5]}
例3 :
在这里,我们举一个grouponby列pandas的例子。下面给出的例子是 –
import pandas as pd
import numpy as np
ipl_data = {'Name': ['Priya', 'Rudra', 'Dev', 'Nisha', 'Arpita',
'Shipra', 'Kakali', 'Kunal', 'Neha', 'Rup', 'Rim', 'Ram'],
'Rank': [1, 2, 3, 4, 5,6 ,7 ,8,9 , 10,11,12],
'DOB': [2000,2000,2002,1999,2001,2000,1998,1999,2000,2002,2001,2000],
'Points':[676,709,963,873,790,802,956,688,794,801,890,890]}
df = pd.DataFrame(ipl_data)
grouped = df.groupby('DOB')
print (grouped['Points'].agg(np.mean))
输出
现在我们编译上述程序,编译成功后,我们运行它。那么结果如下
DOB
1998 956.0
1999 780.5
2000 774.2
2001 840.0
2002 882.0
Name: Points, dtype: float64
因此,在本教程中,我们将简要地讨论pandas中的groupby列。