python - 按一列分组并计算 Pandas 中的多个类别

标签 python pandas numpy

我有一个数据集 df,我想在其中按一列进行分组,然后计算第二列中每个类别的计数

name    location    sku
svc1    ny          hey1
svc2    ny          hey1
svc3    ny          hey1
svc4    ny          hey1
lo1     ny          ok1
lo2     ny          ok1
fab1    ny          hi
fab2    ny          hi
fab3    ny          hi
hello   ca          no
hello   ca          no

期望

location    sku     count
ny          hey1    4
ny          ok1     2
ny          hi      3
ca          no      2
    

        

正在做

df2 = pd.DataFrame()
df2['sku'] = df.groupby('location')['sku'].nth(0)
df2['count'] = df.groupby('sku').count()
    

但是,我得到了 NAN 进行计数,但没有得到 sku 下列出的所有数据。

如有任何建议,我们将不胜感激。

最佳答案

您希望按两列进行分组:

df.groupby(['location','sku']).size().reset_index(name='count')

或者按一列和 value_counts 另一列进行分组:

# this should be slightly faster
(df.groupby('location')['sku'].value_counts()
      .reset_index(name='count'))

输出:

  location   sku  count
0       ca    no      2
1       ny  hey1      4
2       ny    hi      3
3       ny   ok1      2

关于python - 按一列分组并计算 Pandas 中的多个类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66593073/

相关文章:

Python Pandas 根据多种条件(长度和内容)将字符串从一个单元格复制到另一个单元格

python - Numpy fromfile 的两种实现?

python - Google 的 TensorFlow 中的 Theano Dimshuffle 等效?

java - 在 NumPy 和 JPype 之间转换数组?

python - 如何使用 Python/R 在开放街道 map 中绘制路线?

python - 是否可以向 Python 列表实例添加方法?

python - 如果我不关闭Python SQLite中的数据库连接怎么办

python - 使用 Python 从索引列表中删除多个元素

python - 获取中位数对应的索引

python - 动态访问 Pandas 数据框列