Pandas:如何计算 groupby 对象中的众数
您可以使用以下语法来计算 pandas 中 GroupBy 对象的众数:
df. groupby ([' group_var '])[' value_var ']. agg ( pd.Series.mode )
以下示例展示了如何在实践中使用此语法。
示例:GroupBy 对象中的计算模式
假设我们有以下 pandas DataFrame,显示来自不同球队的篮球运动员的得分:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
' points ': [10, 10, 12, 15, 19, 23, 20, 20, 26]})
#view DataFrame
print (df)
team points
0 to 10
1 to 10
2 to 12
3 to 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26
我们可以使用以下语法来计算每个团队的时尚点值:
#calculate mode points value for each team
df. groupby ([' team '])[' points ']. agg ( pd.Series.mode )
team
At 10
B [19, 23]
C 20
Name: points, dtype: object
以下是如何解释结果:
- A队的时尚点值为10 。
- B队的时尚点值为19和23 。
- C队的时尚点值为20 。
如果一个组有多种模式,您可以使用以下语法将每种模式显示在不同的行上:
#calculate mode points value for each team
df. groupby ([' team '])[' points ']. apply ( pd.Series.mode )
team
At 0 10
B 0 19
1 23
C 0 20
Name: points, dtype: int64
注意:您可以在此处找到 pandas 中 GroupBy 操作的完整文档。
其他资源
以下教程解释了如何在 pandas 中执行其他常见操作: