我正在使用pymongo API从MongoDB数据库中提取数据,并将其插入到pandas数据框中。数据库中的某些字段包含诊断代码列表。其中大多数都有一个附带的“计数”字段,但没有。对于我计划定期对这些数据执行的分析而言,此计数将非常重要。数据框“ DF”如下所示:
dxCodes memberID newDx
0 [4280, 4293, 4241, 4240, 4242, 4243] 856589080 0
1 [V7612] 906903383 0
2 [4550, 4553, V1582] 837210554 0
3 [78791, 28860, V1582, 496, 25000, 4019] 935634391 0
4 [30500, 42731, 4280, 496, 59972, 4019, 3051] 929185103 0
我需要在中创建一个新列,其中包含诊断代码字段中包含的诊断代码计数。我到过互联网,但是我尝试过的所有解决方案都没有成功。我得到的最接近的是这个
DF['dxCount'] = len(DF['dxCodes'])
但是,我得到这个结果
dxCodes memberID newDx dxCount
0 [4280, 4293, 4241, 4240, 4242, 4243] 856589080 0 139360
1 [V7612] 906903383 0 139360
2 [4550, 4553, V1582] 837210554 0 139360
3 [78791, 28860, V1582, 496, 25000, 4019] 935634391 0 139360
4 [30500, 42731, 4280, 496, 59972, 4019, 3051] 929185103 0 139360
dxCount列中显示的数字是数据帧中的行数,但我希望它在dxCodes字段中显示dx代码数,因此所需的结果将是
dxCodes memberID newDx dxCount
0 [4280, 4293, 4241, 4240, 4242, 4243] 856589080 0 6
1 [V7612] 906903383 0 1
2 [4550, 4553, V1582] 837210554 0 3
3 [78791, 28860, V1582, 496, 25000, 4019] 935634391 0 6
4 [30500, 42731, 4280, 496, 59972, 4019, 3051] 929185103 0 7
我在Python的旅程中走了很长一段路,但是这一天让我在数天之内将头撞墙了好几个小时。提前感谢你的帮助!
列表理解应该在这里起作用:
>>> df['dxCount'] = [len(c) for c in df['dxCodes']]
尽管也许更好的设计是将保留dxCodes
在一个单独的数据帧中,以索引,memberID
以便可以将它们存储为同构的字符串列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句