python - 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
当我将我聚合的列(此处的平均花费)括起来时,我得到一个格式化的输出(带有带状行),而不是将它括在大括号中。
只是想知道这里发生了什么(可能在后台)格式化输出。
解决方案
当你放这个时[{'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
推荐阅读
- hyperledger-explorer - 如何启动资源管理器 v3.7
- microsoft-graph-api - 为共享邮箱创建订阅
- ios - 具有 Alamofire 下载功能的 JWT 身份验证
- go - 原子/线程中的 append() 是否保存?
- json - 如何解析包含在Scala中始终具有更改名称的字段的json?
- kotlinx.coroutines - 使用协程的长寿服务
- azure-data-factory - 在一项活动中解析多个 json 文件
- python - PySpark 中日期时间的四舍五入时间
- c# - 无法在对象“dbo.Account”中插入重复键。重复键值为 (2)
- php - 在 Laravel 5.7 中测试 PHP 单元测试之间的依赖关系