首页 > 解决方案 > 在 Python 中创建汇总表

问题描述

有没有一种简单的方法可以从现有表中的列在 Python 中创建汇总表?我以前只使用过 SQL,这将通过以下代码完成:

选择 AreaCode、Measure、sum(Value) 作为 'VALUE'

从表

按区号、测量值分组

在我当前的表中(坚持上面的示例)我有数百行包含 AreaCode、Measure 和 Value,我想在 Python 的新表中聚合它们

标签: pythonpandas

解决方案


给定一个名为 pandas 的数据框table,如下所示:

table
#  AreaCode Measure  Value
#0        A      M1     13
#1        A      M1      1
#2        B      M1     15
#3        B      M1      1
#4        A      M2     54
#5        A      M2      1
#6        B      M2     17
#7        B      M2      1

执行聚合的代码是:

table.groupby(['AreaCode', 'Measure'], as_index=False).sum()
#  AreaCode Measure  Value
#0        A      M1     14
#1        A      M2     55
#2        B      M1     16
#3        B      M2     18

生成table和测试此解决方案的代码:

table = pd.DataFrame({'AreaCode': {0: 'A', 1: 'A', 2: 'B', 3: 'B', 4: 'A', 5: 'A', 6: 'B', 7: 'B'}, 'Measure': {0: 'M1', 1: 'M1', 2: 'M1', 3: 'M1', 4: 'M2', 5: 'M2', 6: 'M2', 7: 'M2'}, 'Value': {0: 13, 1: 1, 2: 15, 3: 1, 4: 54, 5: 1, 6: 17, 7: 1}})

推荐阅读