小编Big*_*ist的帖子

Python向Pandas Dataframe添加列,该列是另一列中列表元素的计数

我正在使用 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
Run Code Online (Sandbox Code Playgroud)

我需要在其中创建一个新列,其中包含诊断代码字段中包含的诊断代码的计数。我查遍了互联网,但尝试过的解决方案都没有成功。我得到的最接近的是这个

DF['dxCount'] = len(DF['dxCodes'])
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这个结果

                                        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 …
Run Code Online (Sandbox Code Playgroud)

python list count dataframe pandas

2
推荐指数
1
解决办法
1684
查看次数

使用Python将Pandas数据帧中的行作为单个文档插入到mongodb集合中

我一直在尝试将pandas数据帧的行作为单独的文档插入到mongodb集合中.我使用pymongo从MongoDB中提取数据,执行一些转换,运行评分算法,并将分数作为附加列添加到数据帧.最后一步是将行作为单独的文档插入到mongoDB数据库的特殊集合中,但我完全被卡住了.我的示例数据帧df看起来像这样.

    memberID                                       dxCodes  dxCount  score
0  856589080          [4280, 4293, 4241, 4240, 4242, 4243]        6    1.8 
1  906903383                                       [V7612]        1    2.6
2  837210554                           [4550, 4553, V1582]        3    3.1
3  935634391       [78791, 28860, V1582, 496, 25000, 4019]        6    1.1
4  929185103  [30500, 42731, 4280, 496, 59972, 4019, 3051]        7    2.8
Run Code Online (Sandbox Code Playgroud)

MemberID是一个字符串,dx代码是一个数组(在MongoDB术语中),dxCount是一个int,得分是一个浮点数.我一直在用我发现的一段代码来回应一个模糊的类似问题.

import json
import datetime
df = pandas.DataFrame.from_dict({'A': {1: datetime.datetime.now()}})
records = json.loads(df.T.to_json()).values()     
db.temp.insert_many(records) 
Run Code Online (Sandbox Code Playgroud)

这是我能够在我的收藏中得到的:

{
    "_id" : ObjectId("565a8f206d8bc51a08745de0"),
    "A" : NumberLong(1448753856695)
}
Run Code Online (Sandbox Code Playgroud)

它并不多,但它和我一样接近.我花了很多时间在谷歌上搜索并在黑暗中拍摄但尚未破解它.非常感谢任何指导,感谢您的帮助!

python mongodb dataframe pymongo pandas

1
推荐指数
1
解决办法
5270
查看次数

标签 统计

dataframe ×2

pandas ×2

python ×2

count ×1

list ×1

mongodb ×1

pymongo ×1