如何解决Groupby / sort_values 在查看医疗数据
嗨 - 我是一名兽医,我想查看一些医疗数据 在数据框中。 df 由 100k 行(!) 组成,其中包括 一些名为“ClinicName”、“Induction Agent”和“Complication”的列 存在'(1 = 真,0 = 假)。下面的例子:
诊所名称 | 感应剂 | 并发症出现 |
---|---|---|
红山 | 丙泊酚 | 1 |
基督城 | 阿法森 | 0 |
红山 | 丙泊酚 | 1 |
伍斯特 | 丙泊酚 | 0 |
基督城 | 阿法森 | 0 |
德比 | 丙泊酚 | 0 |
伍斯特 | 阿法森 | 1 |
德比 | 丙泊酚 | 0 |
红山 | 丙泊酚 | 1 |
我想创建一个标准化的水平条形图,显示一个 每个 ClinicName 是否存在并发症,并按以下分组分组 诱导剂的类型。我已经成功地以这种形式做到了这一点:
complication_by_clinic = df.groupby(['ClinicName','Induction Agent'])['Complication Present'].
value_counts(normalize=False,sort=True,ascending=True,bins=None,dropna=True).unstack().tail(10)
complication_by_clinic.plot(kind='barh',stacked=True,figsize=[20,5],colormap='winter')
然而,我真正需要的是 sort_values 以便标准化值按升序或降序排列,并且条形图中的诱导剂的颜色彼此不同。然后,我希望能够使用 df.drop 删除所有归一化值小于特定数量(例如 0.1)的诊所数据。
(给出一些背景,原因是目前的卡方分析中,诱导剂和并发症存在的值为 0 显着扭曲了数据,因为一些诊所没有定期输入数据)
需要类似这样的东西来对值进行排序,但我做对了:
complication_by_clinic = df.sort_values(df.groupby(['ClinicName','Induction Agent'])['Complication Present'].sum()
但我也坚持对条形图中的“感应剂”进行不同的着色。非常感谢任何帮助 - 作为回报,请随时向我询问有关您宠物的问题!
这个prtscr链接显示了它目前的显示方式: [1]: https://i.stack.imgur.com/wZB8F.png 这就是我想要的样子: https://1drv.ms/u/s!Ajl7cdyxWsko6Qu6lZZDEVcHgDaa?e=3sShAK
[这里有一些额外的打印屏幕可能会有帮助
https://1drv.ms/w/s!Ajl7cdyxWsko6QxSYdylu-3CoC6H?e=hR1BfS ]
解决方法
第一部分:
ToolTip="Tooltip text"
编辑:
抱歉,应该是:
complication_by_clinic.sort_values(['ClinicName','Induction Agent'],ascending=True).plot(kind='barh',stacked=True,figsize=[20,5],colormap='winter')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。