我拥有一个基于 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
现在,我在某些列上使用 str.strip() 来删除意外的空间。
问题是,在我应用该方法后,它返回 NaN 作为结果,因为尽管该列是字符串类型,但它仍然表现为对象。
pd_conversão['teste'] = pd_conversão['referenciaConversao'].str.strip(' ')
pd_conversão
我在 strip() 方法文档中看到,它对于非字符串的所有其他内容返回 NaN。但我该如何解决这个问题呢?我见过一些关于迭代每一行的问题!我有一个巨大的 DF,所以这不是一个选择!
我尝试将我的列(astype)转换为字符串,但不起作用!
列
'referenciaConversao'
包含 ObjectId
对象,而不包含 str
。
如果使用无效字符串(包括带有尾随空格的字符串)调用,ObjectId
将引发错误:
bson.errors.InvalidId:'6123ca19b2dc56c52947973'不是有效的ObjectId,它必须是12字节输入或24个字符的十六进制字符串
如果将其导入为
ObjectId
,则它们不会有尾随空格,并且您不需要使用 strip
。如果您自己创建对象,则应在创建对象之前删除字符串。