2016-04-27 3 views
0

Я пытаюсь вставить Pandas DataFrame в Mongodb с помощью PyMongo.Вставить метку времени Панды в Mongodb

df.head() 

enter image description here

Поскольку индекс, если панды DataFrame является DatetimeIndex, преобразование DataFrame в dict и вставить его в MongoDB:

db.testCollection.insert(df.T.to_dict()) 

приводит к возникновению ошибки:

InvalidDocument: documents must have only string keys, key was Timestamp('2016-04-07 09:30:00') 

мы можем преобразовать DatetimeIndex в нечто другое, которое может быть вставлено в Mongodb, а затем еще можно преобразовать обратно в DatetimeIndex при чтении из Mongodb?

ответ

1

Решение будет то, что вы поворачиваете индекс str, прежде чем пытаться хранить вдали в MongoDB, как это:

>> df.index = df.index.astype(str) 
>> db.testCollection.insert(df.T.to_dict()) 

При повторном чтении данные из БД позже вы можете превратить индекс временной метки:

>> df.index = pd.to_datetime(df.index) 

Надеюсь, это поможет