python - 从 groupby.size() 命令查找总计

标签 python python-3.x pandas pandas-groupby

我有一行代码,它通过两列的 groupby 命令生成表格计数:

beat_pri = df_2011.groupby(['Beat', 'Priority']).size()

制作的表格:

Beat  Priority    Count
01X   1.0          394
      2.0         1816

02X   1.0          644
      2.0         1970

02Y   1.0          661

                  ... 

我想做的是创建一个新列'Total',它是按beat 列分组的总计数。例如

Beat     Priority   Count  Total    
01X       1.0       394     2210
          2.0       1816

02X       1.0       644     2614
          2.0       1970

02Y       1.0       661     2970
          2.0       2309
        ... 

到目前为止我尝试过的是:

beat_pri2011['Total'] = df_2011.groupby(['Beat']).size().to_frame('total')

但是这会产生:

Beat   Priority  Count  Total   
01X    1.0       394    NaN
       2.0       1816   NaN

02X    1.0       644    NaN
       2.0       1970   NaN

02Y    1.0       661    NaN
       2.0       2309   NaN

                    ...

提前致谢。

(我重新输入了这个问题,以消除之前带来的任何困惑。)

最佳答案

我之前误解了你的问题。我从您最近的编辑中了解到,您希望按总计数对 groupby 之后的聚合进行排序。

下面是你想要的吗

df = pd.DataFrame([('ST&SAN P...', '1.0', '06X', '1.0', 'PDOA', 'POSSIBLE DEAD PERSON'), ('ST&HANNAH ST', '1.0', '07X', '1.0', '415GS', '415 GUNSHOTS'), ('ST&MARKET ST', '1.0', '07X', '2.0', '415GS', '415 GUNSHOTS'), ('PRENTISS ST', '2.0', '06X', '2.0', '415GS', '415 GUNSHOTS'), ('AV&FOOTH...', '2.0', '07X', '1.0', '415GS', '415 GUNSHOTS')], columns=('Location', 'Area-Id', 'Beat', 'Priority', 'Type-Id', 'Incident Type Description'))
df2 = df.groupby(["Beat", "Priority"])[["Location"]].count() \
    .rename(dict(Location="Count"), axis=1).reset_index()

df2.merge(df2.groupby("Beat").sum(), on="Beat", suffixes=("", "_Total")) \
    .sort_values("Count_Total", ascending=False)

结果

    Beat    Priority    Count   Count_Total
2   07X 1.0 2   3
3   07X 2.0 1   3
0   06X 1.0 1   2
1   06X 2.0 1   2

关于python - 从 groupby.size() 命令查找总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58199198/

相关文章:

python - f.readline() 不捕获文件的最后一行

python - 按两个条件分组并将名称附加在一起以形成 Pandas Dataframe 上的一个单元格

csv - 从 csv 文件中读取列上的多重索引

python - 在 panda 数据框中用更好的替代方案替换 for 循环以进行相似性测量

python - 删除两个特定字符之间的文本(多次出现)

Python 3 readline() 不起作用

python-3.x - TypeError : Invalid shape (100, 100, 1) for image data 当plot image

python - 使用 Poetry 自动从 Git 安装 Python 依赖项

python - Pandas 本地化和转换日期时间列而不是日期时间索引

python - 如何重写 Odoo 创建函数