Groupby / sort_values 在查看医疗数据

问题描述

嗨 - 我是一名兽医,我想查看一些医疗数据 在数据框中。 df 由 100k 行(!) 组成,其中包括 一些名为“ClinicName”、“Induction Agent”和“Complication”的列 存在'(1 = 真,0 = 假)。下面的例子:

10 row example

诊所名称 感应剂 并发症出现
红山 丙泊酚 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 ]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)