首页 > 解决方案 > groupby python格式化输出

问题描述

我是 Python 新手,每天都在学习很多新东西!

我在 pandas 中按如下代码运行一个组,并注意到一些有趣的事情:-

df = pd.DataFrame({'Hospital' : ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C', 'C'],"Claim Type" : ['HHA', 'HSP', 'IP', 'OP', 'SNF', 'DAE', 'CAR', 'HHA', 'HSP', 'IP', 'OP', 'SNF', 'DAE', 'CAR', 'HHA', 'HSP'],"avg spend" : [52, 12, 2, 80, 1, 7, 487, 14, 12, 7973, 54, 12, 20, 1549, 972, 169]})
df = df.groupby(['Hospital','Claim Type']).mean()[{'avg spend'}].round(2)

                      avg spend
Hospital Claim Type
A        HHA                52
         HSP                12
         IP                  2
         OP                 80
B        CAR               487
         DAE                 7
         HHA                14
         HSP                12
         IP               7973
         SNF                 1
C        CAR              1549
         DAE                20
         HHA               972
         HSP               169
         OP                 54
         SNF                12

当我将我聚合的列(此处的平均花费)括起来时,我得到一个格式化的输出(带有带状行),而不是将它括在大括号中。

只是想知道这里发生了什么(可能在后台)格式化输出。

标签: pythonpandasgroup-by

解决方案


当你放这个时[{'avg spend'}],你基本上是在传递一个set内部 []。就像@Che3steR 指出的那样,您需要传递一个 list [['avg spend']]。他们都给出了相同的结果:

df = df.groupby(['Hospital','Claim Type']).mean()[{'avg spend'}].round(2)
print(df)

                     avg spend
Hospital Claim Type
A        HHA                52
         HSP                12
         IP                  2
         OP                 80
B        CAR               487
         DAE                 7
         HHA                14
         HSP                12
         IP               7973
         SNF                 1
C        CAR              1549
         DAE                20
         HHA               972
         HSP               169
         OP                 54
         SNF                12

df = df.groupby(['Hospital','Claim Type']).mean()[['avg spend']].round(2)
print(df)

                     avg spend
Hospital Claim Type
A        HHA                52
         HSP                12
         IP                  2
         OP                 80
B        CAR               487
         DAE                 7
         HHA                14
         HSP                12
         IP               7973
         SNF                 1
C        CAR              1549
         DAE                20
         HHA               972
         HSP               169
         OP                 54
         SNF                12

推荐阅读