我想在mongodb中存储一个数据帧。我能够正常地做到这一点,但我需要添加另一个列,其值将作为对象存储在mongodb中
Column C:
1. {
"test1": "Unknown",
"test2": "Unknown"
}
2. {
"test1": "Unknown",
"test2": "Unknown"
}
我试图通过以下方式做到这一点:
df['C'] = {
"test1": "Unknown",
"test2": "Unknown"
}
这给我一个错误
ValueError: Length of values does not match length of index
稍后我将使用
将其存储在mongodb中records = json.loads(df.T.to_json()).values()
db.users.insert(records)
任何想法如何实现这一目标?
答案 0 :(得分:1)
我认为您的数据帧不是一行,因此您无法为df [' C']分配单个值。
您可以创建与数据帧长度相同的列表:
/etc/crontab
或使用apply运行一些填充列的函数:
import pandas as pd
df = pd.DataFrame(data=list(range(5)), columns=["Sample"])
df['C'] = [{"test":"value"}]* df.shape[0]
df
Sample C
0 0 {'test': 'value'}
1 1 {'test': 'value'}
2 2 {'test': 'value'}
3 3 {'test': 'value'}
4 4 {'test': 'value'}
使用apply的优点是能够轻松地将现有数据从数据框中删除到新列中。例如,这里测试的数字是从" Sample"字段。