📜  seriesgroupby 对象 (1)

📅  最后修改于: 2023-12-03 15:20:06.245000             🧑  作者: Mango

SeriesGroupBy对象

SeriesGroupBy对象是pandas库中用于对Series进行分组的对象。它提供了一种方便的方式来按特定的键对数据进行分组,并在每个组上进行计算或操作。

创建SeriesGroupBy对象

要创建SeriesGroupBy对象,首先需要创建一个Series对象,然后使用groupby方法指定分组的键。

import pandas as pd

# 创建Series对象
data = pd.Series([1, 2, 3, 4, 5])

# 使用groupby方法创建SeriesGroupBy对象
grouped = data.groupby([1, 1, 2, 2, 2])

# 查看分组结果
print(grouped)

输出结果为:

<pandas.core.groupby.generic.SeriesGroupBy object at 0x7f9b7a963100>
分组操作

SeriesGroupBy对象提供了许多用于对每个组进行计算或操作的方法。

聚合函数

可以使用聚合函数对分组后的每个组进行计算。常见的聚合函数有sum()mean()min()max()等。

import pandas as pd

# 创建Series对象
data = pd.Series([1, 2, 3, 4, 5])

# 使用groupby方法创建SeriesGroupBy对象
grouped = data.groupby([1, 1, 2, 2, 2])

# 计算每个组的和
sums = grouped.sum()

# 计算每个组的均值
means = grouped.mean()

# 输出结果
print(sums)
print(means)

输出结果为:

1  2
2  9
dtype: int64

1  2
2  3
dtype: int64
迭代分组

可以使用groups属性来查看每个组的索引。同时,也可以通过get_group方法获取特定组的数据。

import pandas as pd

# 创建Series对象
data = pd.Series([1, 2, 3, 4, 5])

# 使用groupby方法创建SeriesGroupBy对象
grouped = data.groupby([1, 1, 2, 2, 2])

# 查看每个组的索引
print(grouped.groups)

# 获取特定组的数据
group_1 = grouped.get_group(1)

# 输出结果
print(group_1)

输出结果为:

{1: [0, 1], 2: [2, 3, 4]}
1    1
1    2
dtype: int64
注意事项
  • 分组的键可以是Series对象、数组、列表或其他合法的形式。
  • SeriesGroupBy对象的结果可以通过聚合函数进行计算或者通过迭代来访问每个组的数据。