【发布时间】:2020-06-24 05:25:34
【问题描述】:
从 MongoDB 检索数据并加载到 Pandas 数据帧后,关于存储十六进制 ObjectID 的推荐做法是什么?
我认为,存储为字符串时,它们会占用大量内存,这在非常大的数据集中可能会受到限制。将它们转换为整数(从十六进制到十进制)是个好主意吗?这不会减少内存使用并加快处理速度(合并、查找...)吗?
顺便说一句,这就是我的做法。这是最好的方法吗?不幸的是,NaN 失败了。
tank_hist['id'] = pd.to_numeric(tank_hist['id'].apply(lambda x: int(str(x), base=16)))
【问题讨论】:
-
您的身份证件有多长?整数有大小限制。
-
你能提供更多的上下文信息吗?这真的取决于你的设置。如果您只想摆脱十六进制值,请使用 tank_hist['id'].to_csv(...) tank_hist.drop('id', axis=1)。然后,如果需要,您可以在 csv 文件中进行映射。不要使用应用。它的计算成本很高。仅仅为了节省一些内存使用而使用 apply 并不是一件好事。在任何情况下,可能十六进制值对您的内存使用都不是那么重要。
标签: python pandas mongodb bson