📅  最后修改于: 2023-12-03 15:10:09.206000             🧑  作者: Mango
在数据分析工作中,我们经常需要对数据进行聚合统计。在 Python 的 pandas 库中,有一个非常方便的功能,可以对数据进行按照某一列分组的操作,这就是 groupby。
对于一列数据,我们可以使用 groupby 分组,然后对每组数据进行一些聚合操作,如计数、求和、求平均等。本文将以按照一列数据进行分组,并统计每个分组中的数量为例,来介绍 groupby 的使用方法。
我们先创建一个 pandas 的 DataFrame 对象,包含一个名为“species”的列和一个名为“count”的列,其中“species”列表示某种动物的物种,而“count”列表示该物种被发现的次数。
import pandas as pd
data = {
"species": ["panda", "panda", "panda", "koala", "koala", "kangaroo"],
"count": [1, 2, 3, 4, 5, 6]
}
df = pd.DataFrame(data)
print(df)
输出结果为:
species count
0 panda 1
1 panda 2
2 panda 3
3 koala 4
4 koala 5
5 kangaroo 6
现在,我们要按照“species”列进行分组,并统计每个物种出现的次数。可以使用 pandas 的 groupby 方法:
grouped = df.groupby("species")
result = grouped.size()
print(result)
输出结果为:
species
kangaroo 1
koala 2
panda 3
dtype: int64
可以看到,panda 物种出现了 3 次,koala 物种出现了 2 次,kangaroo 物种只出现了 1 次。这就是按熊猫计数分组的基本方法。
最后,我们使用 matplotlib 库将结果进行可视化:
import matplotlib.pyplot as plt
result.plot(kind="bar")
plt.show()
输出结果为:
从图中可以看到,在这个数据集中,panda 物种出现了最多次,而 kangaroo 物种只出现了一次。
本文介绍了 pandas 库中的 groupby 方法,可以对数据进行按照某一列分组的操作,并统计每个分组中的数量。通过本文的介绍,你可以了解到:
DataFrame.groupby("column_name")
;grouped.size()
方法可以统计每个分组中的数量,并返回一个 Series 对象。当然,在数据分析工作中,groupby 的应用远不止如此,还可以进行一些高级操作,如分组求和、分组求平均、分组排序等。如果你感兴趣,可以进一步学习 pandas 的 groupby 方法的使用。