Python将列添加到Pandas Dataframe,它是另一列中列表元素的计数

2024-09-30 14:33:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pymongoapi从MongoDB数据库提取数据,并将其插入pandas数据帧。数据库中的某些字段包含诊断代码列表。其中大多数都有一个附带的“count”字段,但有一个没有。这个计数对于我计划定期对这些数据执行的分析非常重要。数据帧“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

我需要在中创建一个新列,其中包含“诊断代码”字段中包含的诊断代码的计数。我在网上到处转悠,但我尝试过的解决方案都没有成功。最接近我的就是这个

^{pr2}$

但是,我得到了这个结果

                                        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列中显示的数字是dataframe中的行数,但是我希望它在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之旅中走了很长一段路,但这一次让我的头撞了好几个小时,跨越了好几天。提前感谢您的帮助!在


Tags: 数据代码数据库pandas列表mongodb附带计数