如何统计大熊猫的群体目击事件


通常,您可能对计算 pandas DataFrame 中每组的观察数量感兴趣。

幸运的是,使用groupby()size()函数和以下语法很容易做到这一点:

 df. groupby (' column_name '). size ()

本教程使用以下数据框解释了该函数实际使用的几个示例:

 import numpy as np
import pandas as pd

#create pandas DataFrame
df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'division':['E', 'W', 'E', 'E', 'W', 'W', 'E'],
                   'rebounds': [11, 8, 7, 6, 6, 5, 12]})

#display DataFrame
print (df)

  team division rebounds
0 AE 11
1 AW 8
2 BE 7
3 BE 6
4 BW 6
5 CW 5
6 CE 12

示例 1:通过变量计数

以下代码显示了如何计算每个团队的观察总数:

 #count total observations by variable 'team'
df. groupby (' team '). size ()

team
At 2
B 3
C 2
dtype: int64

从结果我们可以看出:

  • A 队有 2 个观察结果
  • B 队有 3 个观察结果
  • C 组有 2 个观察结果

请注意,前面的代码生成一个系列。在大多数情况下,我们希望使用 DataFrame,因此我们可以使用reset_index()函数来生成 DataFrame:

 df. groupby (' team '). size (). reset_index (name=' obs ')

        team obs
0 to 2
1 B 3
2 C 2

示例 2:按变量进行计数和排序

我们还可以使用sort_values()函数对组数进行排序。

我们可以指定ascending=False将组数从最大到最小排序,或者指定ascending=True从最小到最大排序:

 df. groupby (' team '). size (). reset_index (name=' obs '). sort_values ([' obs '], ascending= True )

        team obs
0 to 2
2 C 2
1 B 3

示例 3:按多个变量进行计数

我们还可以计算 pandas DataFrame 中按多个变量分组的观测值数量:

 #count observations grouped by team and division
df. groupby ([' team ',' division ']). size (). reset_index (name=' obs ')

        team division obs
0 A E 1
1 A W 1
2 B E 2
3 B W 1
4 C E 1
5 C W 1

从结果我们可以看出:

  • 1 个观察属于 A 组和 E 组
  • 1 个观察属于 A 组和 W 组
  • 2 个观察结果属于 B 组和 E 组
  • 1 个观察属于 B 组和 W 组
  • 1 个观察属于 C 组和 E 组
  • 1 个观察属于 C 队和 W 部门

其他资源

如何计算 Pandas 中的列总和
如何计算 Pandas 中列的平均值
如何找到 Pandas 中列的最大值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注