如何统计大熊猫的群体目击事件
通常,您可能对计算 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 中列的最大值