这篇文章的目的主要是讨论,所以即使是松散的想法或绳子拉将不胜感激。我正试图收集一些数据进行分析,我想知道使用
Pandas.cut
. 在某些情况下,我特别尝试将ICD-9诊断数据分类并使用
this list
作为起点。据我所知,一种常见的方法是:
break_points = [0, 139, 239, ...]
labels = ['infectious and parasitic diseases', 'neoplasms', 'endocrine diseases', ...]
df['diag_codes_binned'] = pd.cut(df['diag_codes'],
bins=break_points,
labels=labels)
我知道这是一种完美的功能性方法,但我不喜欢目视检查代码并确定什么范围与什么标签对应有多么困难。我正在探索使用字典来实现以下目的:
diagnosis_code_dict = {139: 'infectious and parasitic diseases',
239: 'neoplasms',
279: 'endocrine diseases',
...}
但是警察局。剪切函数似乎与我的字典不太协调。似乎有一种方法可以做到这一点,即使用数据帧作为具有最小值和最大值的查找表,
shown here
,这似乎是一种可能性(以下示例):
In [187]: lkp
Out[187]:
Min Max Val
0 1 99 AAA
1 100 199 BBB
2 200 299 CCC
3 300 399 DDD
最后,我还要考虑一下我正在处理的数据集的最佳方式。一些诊断代码以V或E开头,目前我正计划对其进行预处理,将其转换为范围的扩展,并以这种方式进行处理。例如,如果可能的非电子/视频代码范围为
range(0,1000)
,然后我可以将E转换为a
range(1000, 2000)
V变成了a
range(2000, 3000)
这样我就可以为所有代码维护一个单独的查找表或字典,从中我可以切入我想要的任意多个箱子。这就是说,这种方法会导致对这些代码一目了然的理解能力下降,所以如果有更好的方法来处理这个问题,我愿意接受建议。