让我们来详细讲解一下PandasGroupBy对象索引与迭代方法。
Pandas GroupBy对象
在Pandas中,GroupBy对象可以看作是一个特殊的DataFrame对象。GroupBy对象对数据集进行分组,以便进行一些对数据分组之后的计算和分析。我们可以使用GroupBy对象的apply()
函数来将函数应用于每个分组数据。
Pandas GroupBy对象的索引
Pandas GroupBy对象的索引通常是由分组变量的唯一值组成的,这些值将数据集分成若干组。在GroupBy对象中可以使用. groups
属性来访问分组的整数索引。下面是一个简单的例子:
import pandas as pd
data = {'name': ['Jack', 'Peter', 'Jill', 'Alice', 'Kelvin'],
'subject': ['Physics', 'Physics', 'Math', 'Physics', 'Math'],
'score': [85, 80, 75, 90, 92]}
df = pd.DataFrame(data)
grouped = df.groupby('subject')
print(grouped.groups)
运行结果如下:
{'Math': [2, 4], 'Physics': [0, 1, 3]}
其中,Math
和Physics
是分组变量中的唯一值,[2, 4]
和[0, 1, 3]
是每组数据的整数索引,对应于DataFrame对象中每行数据的位置。
Pandas GroupBy对象的迭代
我们可以使用GroupBy对象的迭代函数GroupBy.groups()
来一次访问每个分组的数据。例如,可以使用for
循环迭代遍历分组数据和分组索引,下面是一个简单的例子:
import pandas as pd
data = {'name': ['Jack', 'Peter', 'Jill', 'Alice', 'Kelvin'],
'subject': ['Physics', 'Physics', 'Math', 'Physics', 'Math'],
'score': [85, 80, 75, 90, 92]}
df = pd.DataFrame(data)
grouped = df.groupby('subject')
for group_name, group_data in grouped:
print(group_name)
print(group_data)
运行结果如下:
Math
name subject score
2 Jill Math 75
4 Kelvin Math 92
Physics
name subject score
0 Jack Physics 85
1 Peter Physics 80
3 Alice Physics 90
在上述例子中,GroupBy.groups()
函数返回的是一个元组,分别代表分组的名称和分组数据。我们可以使用group_name
来获取分组的名称,使用group_data
来获取分组数据的DataFrame对象。
除了使用for
循环迭代遍历分组数据,我们还可以使用GroupBy.get_group()
函数来获取单个分组的数据。下面是一个简单的例子:
import pandas as pd
data = {'name': ['Jack', 'Peter', 'Jill', 'Alice', 'Kelvin'],
'subject': ['Physics', 'Physics', 'Math', 'Physics', 'Math'],
'score': [85, 80, 75, 90, 92]}
df = pd.DataFrame(data)
grouped = df.groupby('subject')
math_group = grouped.get_group('Math')
print(math_group)
运行结果如下:
name subject score
2 Jill Math 75
4 Kelvin Math 92
在上述例子中,我们使用了GroupBy.get_group('Math')
函数来获取了Math
分组的数据,返回的是一个DataFrame对象。
好了,以上就是Pandas GroupBy对象索引与迭代方法的详细介绍。希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas GroupBy对象 索引与迭代方法 - Python技术站