如何使用Python Pandas DF获取Mongo数据与数组列表

2024-06-01 02:51:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想读取Mongo数据帧(df)中的Mongo聚合查询,df中的每个字段都有不同的列

这就是我在mongodb中获得数据的方式

{ 
"_id" : 548, 
"agentOfficeVOList" : [
    {
        "officeID" : 4144, 
        "actvFlag" : "Y", 
        "addr1" : "130 Liberty Street; ", 
        "hdqtrFlg" : "N", 
        "countryName" : "US", 
        "stateName" : "NK", 
        "cityDesc" : "Nk", 
        "zipCode" : "16", 
        "sapCreatedFlg" : "Y"
    }, 
    {
        "officeID" : 4607, 
        "actvFlag" : "Y", 
        "addr1" : "4 Albany Street; ", 
        "hdqtrFlg" : "N", 
        "countryName" : "US", 
        "stateName" : "NK", 
        "cityDesc" : "Nk", 
        "zipCode" : "16", 
        "sapCreatedFlg" : "Y"
    }]}

我可以用下面的代码读取数据帧中的数据

 import pandas as pd
  data = pd.DataFrame((coll_t.aggregate([
  {'$project':{'_id':1,'agentOfficeVOList':1 }},
  {'$unwind': '$agentOfficeVOList'},
  {'$limit':10}
   ])))
   print data.head()

我可以看到上面的代码结果如下:

    _id                                  agentOfficeVOList
 0  548  {u'actvFlag': u'Y', u'stateName': u'NK',...
 1  548  {u'actvFlag': u'Y', u'stateName': u'NK',...

但需要在DF中获得如下数据:

 _id agentOfficeVOList agentOfficeVOList agentOfficeVOList agentOfficeVOList
         .officeID       .actvFlag            .addr1         .hdqtrFlg

 548    4144                Y            130 Liberty Street;       N
 548    4607                Y              4 Albany Street;        N

Tags: 数据idstreetdfmongouslibertynk