Python bson:如何在新列中创建ObjectId列表

时间:2018-10-22 20:29:47

标签: python pymongo bson

我有一个CSV,需要在python中创建一列随机的唯一MongoDB id。

这是我的csv文件:

   import pandas as pd

   df = pd.read_csv('file.csv', sep=';')
   print(df)

        Zone
        Zone_1
        Zone_2

我当前正在使用这一行代码来生成唯一的ObjectId- UPDATE

import bson

x = bson.objectid.ObjectId()
df['objectids'] = x
print(df)

Zone; objectids
Zone_1; 5bce2e42f6738f20cc12518d
Zone_2; 5bce2e42f6738f20cc12518d

如何获取每行唯一的ObjectId?

1 个答案:

答案 0 :(得分:1)

讨厌看到您被否决...堆栈溢出使重复的问题胡说八道,拒绝提供有用的帮助,然后因您有勇气询问一些您不知道的事情而被否决。

所提到的问题显然与ObjectIds无关,更不用说将它们(或NumPy或Pandas以外的任何其他对象)添加到数据帧中了。

您可能需要使用地图

这假设列“ objectids” 不是在您的框架中,而“区域” 在您的框架中

df['objectids'] = df['Zone'].map(lambda x: bson.objectid.ObjectId())

映射是超级有用(尽管很慢)的方式来查找系列中的每条记录,并且作为连接外部函数的初始方法特别有用。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.map.html