我打算使用PythonMongoEngine框架在MongoDB中存储Pandas数据帧;通过df.to_list()
将Pandas数据帧强制为Python Dict,并将它们存储为嵌套的文档属性。我正试图通过使用一个名为DataFrameField
的自定义字段类型DataFrameField
将Pandas数据帧强制到python dict并返回到__set__
和__get__
方法中的自定义字段类型DataFrameField
,它是defined in this gist。在
当使用点表示法设置DataFrameField时,这非常有用,如:
import pandas as pd
import numpy as np
from mongoengine import *
a_pandas_data_frame = pd.DataFrame({
'goods': ['a', 'a', 'b', 'b', 'b'],
'stock': [5, 10, 30, 40, 10],
'category': ['c1', 'c2', 'c1', 'c2', 'c1'],
'date': pd.to_datetime(['2014-01-01', '2014-02-01', '2014-01-06', '2014-02-09', '2014-03-09'])
})
class my_data(Document):
data_frame = DataFrameField() # defined in the referenced gist
foo = my_data()
foo.data_frame = a_pandas_data_frame
但是如果我把a_pandas_data_frame
传递给构造函数,我得到:
如果我向print value
方法添加一个print语句,并调用构造函数,它将打印:
['category', 'date', 'goods', 'stock']
{e>__set__
方法的对象之外的其他内容?在
谢谢!在
另外,我在[MongoEngine Repo](https://github.com/MongoEngine/mongoengine/issues/1597)上也问过这个问题,但是有大约300个未解决的问题,所以我不确定我是否会很快在那个论坛上得到回应。。。在
在源代码中,您需要在}方法。在
DataFrameField
字段上定义to_python
方法,否则它将返回到mongoengine.fields.DictField
的{mongoengine.fields.DictField
的to_python
方法基本上是ComplexBaseField
的^{DataFrame
的方法决定对象是sort of a list和{a3},这是通过枚举{这是调用^{} on the field object 的部分。在
因此,您可以简单地将其定义为:
^{pr2}$相关问题 更多 >
编程相关推荐