pandas,groupby之后应该如何获取其中的元素
时间: 2023-05-27 12:01:40 浏览: 234
groupby之后,可以通过以下几种方法获取其中的元素:
1. 使用get_group()方法:该方法可以获取指定分组的所有元素。例如:
```
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8]
})
# 按A列分组
grouped = df.groupby('A')
# 获取分组为'foo'的所有元素
group_foo = grouped.get_group('foo')
```
2. 使用agg()方法:该方法可以对分组后的数据进行聚合运算,并返回聚合结果。该方法可以接受多个聚合函数作为参数,返回包含多个聚合结果的DataFrame。例如:
```
# 按A列分组
grouped = df.groupby('A')
# 对分组后的数据进行聚合运算
agg_result = grouped.agg(['sum', 'mean'])
# 获取聚合结果中某一列的所有元素
col_A_sum = agg_result['C', 'sum']['foo']
```
3. 使用apply()方法:该方法可以对分组后的数据进行自定义操作,并返回操作结果。该方法可以接受一个函数作为参数,该函数会被应用到每个分组中的数据上。例如:
```
# 按A列分组
grouped = df.groupby('A')
# 定义自定义操作函数
def my_func(group):
return group[group['B'] == 'one']['C'].sum()
# 对分组后的数据进行自定义操作
apply_result = grouped.apply(my_func)
# 获取操作结果中某一元素的值
result_foo = apply_result['foo']
```
阅读全文