我是一名外科医生,我正在查看不止一次垂体瘤手术的患者的数据。 我有384个病人,他们做了806次手术。他们中的大多数人做过2次手术,但有些人做过3次或4次。 两种操作类型的操作代码为B041和B012。 我使用了下面的方法来循环遍历我的数据框中的行,以创建一个索引,该索引只包含至少有两个感兴趣的不同OPs的患者
pit_codes = {'B041', 'B012'}
pit_index = []
for i in df_patients.index:
"""EDIT: filter criterion tightened to at least two different
relevant OPs, i.e. the intersection of the implant_codes
list with the patient's OP list has at least two elements."""
if len(pit_codes.intersection(df_patients.OPERTN_01[i])) >= 2:
pit_index.append(i)
df_pits = df_patients.filter(pit_index, axis=0)
display(df_pits)
循环的数据帧是一个列出操作的透视表
df_patients = pd.pivot_table(dups_ind, index=dups_ind.index, aggfunc=list)
display(df_patients)
这在一定程度上起到了作用,但由此产生的datframe df_pits
只有61名患者,而不是384名患者。
查看操作顺序-
df_pits.OPERTN_01.value_counts()
[B012, B041] 26
[B041, B012] 26
[B041, B012, B041] 4
[B041, B041, B012] 2
[B012, B012, B041, B041] 1
[B012, B041, B041] 1
[B041, B012, B012] 1
Name: OPERTN_01, dtype: int64
似乎将我的集合定义为pit_codes = {'B041', 'B012'}
不适用于大多数患者两次接受相同手术的情况,例如B041然后B041,或者B012然后B012。(虽然我还没来得及证明这一点,因为我的技能很低)。
如何创建集合以拾取相同操作重复两次的操作序列
我只是猜测您的数据帧是什么样子,但这里有一些示例
启动数据帧的一些示例
将所有患者和患者分组;他们的治疗:
定义我们感兴趣的治疗方法:
将列表应用为过滤器&;为方便起见,启动第二个数据帧(df2)
打印每个患者、每个治疗(和计数)的信息
我希望这会有所帮助,但在不知道实际数据帧的情况下,这有点棘手
相关问题 更多 >
编程相关推荐