【发布时间】:2016-12-07 05:34:46
【问题描述】:
我有一个患者诊断代码表,其中每一行代表一个患者的所有诊断:
D0 D1 D2 D3 D4 D5 D6
0 0 0 0 0 0 0 0
1 I48.91 R60.9 M19.90 Z87.2 0 0 0
2 496 564.00 477.9 0 J44.9 J30.9 I10
3 I96 R63.0 Z51.5 0 L97.909 I69.90 F01.50
4 491.21 428.0 427.31 V58.61 0 I48.91 Z79.01
5 0 0 0 0 0 0 0
6 J44.9 F41.9 I10 H61.22 0 Z23 0
7 0 0 0 0 0 0 0
8 M48.00 I12.9 N18.9 K59.00 0 N39.0 Z23
9 I11.9 R41.82 R56.9 E11.49 K59.00 0 J45.901
10 I11.9 N40.0 F01.50 0 N40.1 J18.9 J44.1
11 R31.9 M19.90 0 R53.81 0 0 0
12 0 0 0 0 0 0 0
13 M48.02 M48.06 I27.2 0 R53.81 0 0
14 I50.9 M19.90 F41.9 I25.10 0 0 0
15 0 0 0 0 0 0 0
16 I69.359 I48.91 R74.8 I10 0 T50.901A I95.9
... 超过 600 名患者,每名患者最多有 15 个诊断。 (0 代表没有诊断)。 我想创建一个成对频率表来计算患者有不同诊断对的次数:
I48.91 R60.9 M19.90
I48.91 count(I48.91) count(I48.91, R60.9) count(I48.91, M19.90)
R60.9 count(R60.9, 148.91)
M19.9 ...
我已经创建了这样的表:
FreqTable = pd.DataFrame(columns=UniqueCodes['DCODE'], index=UniqueCodes['DCODE'])
FreqTable = FreqTable.fillna(0)
Table of Pairwise frequency counts in Python 使用嵌套的 for 循环对一列数据执行此操作,但对于多列这会变得复杂。任何人都有一个很好的pythonese方式来做到这一点?
【问题讨论】: