我有一个pandas数据框,其中存储了mongoDB的ObjectIDs。我想从mongoDB获取新文档,因此我使用了存储在pandas数据框中的最后一个文档ObjectId。但是当我查询数据库时,它给了我一个错误。
这是我的数据框的样子..
这是我的操作:
df = pd.DataFrame(list(db.dataset2.find()))
last_inserted_id = (df['_id'].tail(1))
for i in db.dataset2.find({"_id": {"$gt": ObjectId(last_inserted_id) }}):
print i
然后就会出现错误。
TypeError: id must be an instance of (str, unicode, ObjectId), not <class
'pandas.core.series.Series'>
这是我的数据框的样子..
_id \
0 5663110c691db01e0cac9d89
1 56631205691db01e0cac9d8a
dish order_area order_id
0 [{u'dish_substitute': u'Yes', u'home_chef_name... NaN order_1
1 [{u'dish_substitute': u'Yes', u'home_chef_name... NaN order_2
order_lat order_long order_time user_id
0 73.955741 40.772027 2015-12-05 16:30:04.345 user_1
1 43.955741 70.772027 2015-12-05 16:34:13.281 user_2
如何处理这个问题?
请帮忙解决。
last_inserted_id = "".join(df['_id'].tail(1).tolist())
,如果df['_id'].dtypes
是object
- 可能是string
。 - jezraellast_inserted_id = "".join(df['_id'].astype('str').tail(1).tolist())
。顺便说一下,我发表评论,因为我不知道你的输入数据框。 - jezrael