Pandas 数据框中如何对数值进行分组计数
要对数值进行分组计数,在 Pandas 数据框中使用 groupby()、size() 和 unstack() 方法。首先,创建一个包含 3 列的数据框 –
dataFrame = pd.DataFrame({
'产品类别': ['电脑', '手机', '电子产品', '电子产品', '电脑', '手机'],'产品名称': ['键盘', '充电器', '智能电视', '照相机', '显卡', '耳机'],'数量': [10, 50, 10, 20, 25, 50]})
现在,使用 groupby() 方法对数值进行分组计数。要计数,使用 size() 和 unstack()。unstack() 会给出新层列标签 –
dataFrame = dataFrame.groupby(['产品类别', '产品名称', '数量']).size().unstack(fill_value=0)
示例
下面是完整代码-
import pandas as pd
# 创建一个含有三个列的数据框
dataFrame = pd.DataFrame({
'产品类别': ['电脑', '手机', '电子产品', '电子产品', '电脑', '手机'],'产品名称': ['键盘', '充电器', '智能电视', '照相机', '显卡', '耳机'],'数量':[10, 50, 10, 20, 25, 50]})
# 数据框
print"数据框...\n",dataFrame
# 计数和 unstack
dataFrame = dataFrame.groupby(['产品类别', '产品名称', '数量']).size().unstack(fill_value=0)
print"\n结果数据框...\n",dataFrame
输出
这将产生以下输出 –
数据框...
产品类别 产品名称 数量
0 电脑 键盘 10
1 手机 充电器 50
2 电子产品 智能电视 10
3 电子产品 照相机 20
4 电脑 显卡 25
5 手机 耳机 50
结果数据框...
数量 10 20 25 50
产品类别 产品名称
电脑 显卡 0 0 1 0
键盘 1 0 0 0
电子产品 照相机 0 1 0 0
智能电视 1 0 0 0
手机 充电器 0 0 0 1
耳机 0 0 0 1