【问题标题】:groupby python formatting outputgroupby python格式化输出
【发布时间】:2020-06-07 18:27:42
【问题描述】:

我是 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

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

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

【问题讨论】:

  • 添加一些您对问题感兴趣的示例数据和输出。请没有图片
  • df = pd.DataFrame({'Hospital' : ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B ', 'B', 'B', 'C', 'C', 'C', 'C', 'C', 'C'],"索赔类型" : ['HHA', 'HSP', ' IP'、'OP'、'SNF'、'DAE'、'CAR'、'HHA'、'HSP'、'IP'、'OP'、'SNF'、'DAE'、'CAR'、'HHA' , 'HSP'],"平均支出" : [52, 12, 2, 80, 1, 7, 487, 14, 12, 7973, 54, 12, 20, 1549, 972, 169]})
  • 将这些详细信息添加到问题中。你可以从这里edit
  • 两种情况下的输出相同,抱歉不知道如何在没有图像的情况下显示,只是两种情况下的输出格式不同,因此我很好奇。
  • 编辑了您的问题。在这种情况下,[{'avg spend'}] 输出是 dataframe ,而 ['avg spend'] 输出是系列。 [{'avg spend'}] 不是正确的方法,而是使用 [['avg spend']] 代替。 ;)

标签: python pandas group-by


【解决方案1】:

当你把这个[{'avg spend'}] 放入时,你基本上是在[] 中传递一个set。就像@Che3steR 指出的那样,您需要传递一个列表[['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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多