将列表中的 Pymongo 数据附加到 pandas 数据框
Append Pymongo data from list to pandas dataframe
我在数据框中有来自 MongoDB 的位置数据,其中包含一个充满字典的列表。我现在正在尝试将字典中的位置数据读取到数据框中。我创建了一个包含列(posX、posY 和 posZ)的新数据框。现在我想读入数据,但我遇到了以下问题。如果我想通过索引添加数据,它会从最后一个 MongoDB 文档中获取所有条目的位置数据。我必须做什么才能为每一行显示正确的位置数据?
我使用此代码从以下 DataFrame 中获取了字典
for i in range(0, 3, +1):
y = df.loc[i,'position.vars']
(我用 del 命令删除了不必要的数据,如 "key":"Positiondaten"。)
Time
Returncode
position.vars
02.02.2017 13:01
OK
[{"key": "Positionsdaten", "value": "1", "vartype": 1}, {"key": "PositionX", "value: 11", "vartype" 1}, {"key": "PositionY", "value: 11", "vartype" 1}, {"key": "PositionZ", "value: 11", "vartype" 1}]
02.02.2017 13:05
OK
{"key": "Positionsdaten", "value": "1", "vartype": 1}, {"key": "PositionX", "value: 0", "vartype" 1}, {"key": "PositionY", "value: 0", "vartype" 1}, {"key": "PositionZ", "value: 0", "vartype" 1}]
02.02.2017 13:09
OK
{"key": "Positionsdaten", "value": "1", "vartype": 1}, {"key": "PositionX", "value: 33", "vartype" 1}, {"key": "PositionY", "value: 66", "vartype" 1}, {"key": "PositionZ", "value: 99", "vartype" 1}]
之后我尝试将数据从 Y 追加到 df2。
df2 = pd.DataFrame(y, columns = ["posX", "posY", "posZ"])
for i in range(0, 3, +1):
y = df.loc[i,'position.vars']
print(y)
df2["posX"] = y[0]["value"]
df2["posY"] = y[1]["value"]
df2["posZ"] = y[2]["value"]
目前我的 DataFrame 看起来像那样
posX
posY
posZ
33
66
99
33
66
99
33
66
99
但 DataFrame 应该是这样的
posX
posY
posZ
11
11
11
0
0
0
33
66
99
通过将 [i] 添加到
来解决它
df2["posX"][i] = y[0]["值"]
我在数据框中有来自 MongoDB 的位置数据,其中包含一个充满字典的列表。我现在正在尝试将字典中的位置数据读取到数据框中。我创建了一个包含列(posX、posY 和 posZ)的新数据框。现在我想读入数据,但我遇到了以下问题。如果我想通过索引添加数据,它会从最后一个 MongoDB 文档中获取所有条目的位置数据。我必须做什么才能为每一行显示正确的位置数据?
我使用此代码从以下 DataFrame 中获取了字典
for i in range(0, 3, +1):
y = df.loc[i,'position.vars']
(我用 del 命令删除了不必要的数据,如 "key":"Positiondaten"。)
Time | Returncode | position.vars |
---|---|---|
02.02.2017 13:01 | OK | [{"key": "Positionsdaten", "value": "1", "vartype": 1}, {"key": "PositionX", "value: 11", "vartype" 1}, {"key": "PositionY", "value: 11", "vartype" 1}, {"key": "PositionZ", "value: 11", "vartype" 1}] |
02.02.2017 13:05 | OK | {"key": "Positionsdaten", "value": "1", "vartype": 1}, {"key": "PositionX", "value: 0", "vartype" 1}, {"key": "PositionY", "value: 0", "vartype" 1}, {"key": "PositionZ", "value: 0", "vartype" 1}] |
02.02.2017 13:09 | OK | {"key": "Positionsdaten", "value": "1", "vartype": 1}, {"key": "PositionX", "value: 33", "vartype" 1}, {"key": "PositionY", "value: 66", "vartype" 1}, {"key": "PositionZ", "value: 99", "vartype" 1}] |
之后我尝试将数据从 Y 追加到 df2。
df2 = pd.DataFrame(y, columns = ["posX", "posY", "posZ"])
for i in range(0, 3, +1):
y = df.loc[i,'position.vars']
print(y)
df2["posX"] = y[0]["value"]
df2["posY"] = y[1]["value"]
df2["posZ"] = y[2]["value"]
目前我的 DataFrame 看起来像那样
posX | posY | posZ |
---|---|---|
33 | 66 | 99 |
33 | 66 | 99 |
33 | 66 | 99 |
但 DataFrame 应该是这样的
posX | posY | posZ |
---|---|---|
11 | 11 | 11 |
0 | 0 | 0 |
33 | 66 | 99 |
通过将 [i] 添加到
来解决它df2["posX"][i] = y[0]["值"]