pymongo objectid 到 pandas 上的字符串

问题描述 投票:0回答:1

我拥有一个基于 pymongo 查询构建的 Dataframe。我已将记录导入到 pandas 数据框中。

import datetime
import pandas as pd
from bson import ObjectId
a = {'_id': ObjectId('6127ada0462851531ed3ee14'),
 'referenciaConversao': ObjectId('6123ca19b2dc56c529479733'),
 'nomeProduto': 'Fire TV Stick Lite com Controle Remoto Lite por Voz com Alexa (sem controles de TV) | Streaming em Full HD | Modelo 2020'}
pd_conversão = pd.DataFrame.from_records([a])
pd_conversão

enter image description here

现在,我在某些列上使用 str.strip() 来删除意外的空间。

问题是,在我应用该方法后,它返回 NaN 作为结果,因为尽管该列是字符串类型,但它仍然表现为对象。

pd_conversão['teste'] = pd_conversão['referenciaConversao'].str.strip(' ')
pd_conversão

enter image description here

我在 strip() 方法文档中看到,它对于非字符串的所有其他内容返回 NaN。但我该如何解决这个问题呢?我见过一些关于迭代每一行的问题!我有一个巨大的 DF,所以这不是一个选择!

我尝试将我的列(astype)转换为字符串,但不起作用!

pandas strip
1个回答
0
投票

'referenciaConversao'
包含
ObjectId
对象,而不包含
str

如果使用无效字符串(包括带有尾随空格的字符串)调用,

ObjectId
将引发错误:

bson.errors.InvalidId:'6123ca19b2dc56c52947973'不是有效的ObjectId,它必须是12字节输入或24个字符的十六进制字符串

如果将其导入为

ObjectId
,则它们不会有尾随空格,并且您不需要使用
strip
。如果您自己创建对象,则应在创建对象之前删除字符串。

© www.soinside.com 2019 - 2024. All rights reserved.