将 Pymongo 数据从列表附加到 pandas 数据框

Posted

技术标签:

【中文标题】将 Pymongo 数据从列表附加到 pandas 数据框【英文标题】:Append Pymongo data from list to pandas dataframe 【发布时间】:2021-08-15 21:56:36 【问题描述】:

我在一个数据框中有来自 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

【问题讨论】:

【参考方案1】:

通过添加[i]来解决它

df2["posX"][i] = y[0]["value"]

【讨论】:

以上是关于将 Pymongo 数据从列表附加到 pandas 数据框的主要内容,如果未能解决你的问题,请参考以下文章

将列表中的索引附加到列表列表以创建 pandas df

从列表的字典中提取列表,然后附加到数据框

将提取的列附加到没有索引的列表中:Pandas

如何将项目附加到 Pandas 中不同列的列表中

使用 pandas 根据条件将 csv 值附加到列表

Python Pandas Dataframe:如何同时将多个索引附加到列表中?