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

Python bson: How to create list of ObjectIds in a New Column

我有一个 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 唯一?

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

所引用的问题显然与 ObjectId 无关,更不用说将它们(或任何其他非 NumPy 或 Pandas 内部的对象)添加到数据框中了。

您可能需要使用地图

这假设列 "objectids" 不是 框架中的系列并且 "Zone" 系列在你的相框中

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

地图是查找系列中每条记录的非常有用(虽然速度慢)的方法,作为连接外部函数的初始方法特别有用。

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