我有一个数据框df,我使用它的几个列groupby:
df['col1','col2','col3','col4'].groupby(['col1','col2']).mean()
Run Code Online (Sandbox Code Playgroud)
以上面的方式,我几乎得到了我需要的表(数据框).缺少的是包含每个组中行数的附加列.换句话说,我有意思,但我也想知道有多少数字被用来获得这些手段.例如,在第一组中有8个值,在第二组中有10个,依此类推.
我为商店创建了一个熊猫数据框
我有列 Transaction 和 Item_Type
import pandas as pd
data = {'Transaction':[1, 2, 2, 2, 3], 'Item_Type':['Food', 'Drink', 'Food', 'Drink', 'Food']}
df = pd.DataFrame(data, columns=['Transaction', 'Item_Type'])
Run Code Online (Sandbox Code Playgroud)
Transaction Item_Type
1 Food
2 Drink
2 Food
2 Drink
3 Food
Run Code Online (Sandbox Code Playgroud)
我正在尝试按交易分组并计算每笔交易的饮料数量,但找不到正确的语法来执行此操作。
df = df.groupby(['Transaction','Item_Type']).size()
Run Code Online (Sandbox Code Playgroud)
这种工作,但给了我一个多指数系列,我还不能弄清楚如何从中选择每笔交易的饮料。
1/Food 1
2/Drink 2
2/Food 1
3/Food 1
Run Code Online (Sandbox Code Playgroud)
这看起来很笨重 - 有更好的方法吗?
这个stackoverflow似乎最相似在pandas中向groupby的结果添加“计数”列?