在嵌套文档中查找 Pandas 中的数据框

Find in nested document to dataframe in Pandas

我有一个结构如下的文件集合:

[{
 "id_":abc,
 "username":"John",
 "data":{
   "phone_number":"+123",
   "address":"street 1"
  }
},
{
 "id_":def,
 "username":"Marie",
 "data":{
    "phone_number":"+456",
    "address":"street 2"
  }
}]

我想获取 pandas 数据框中的所有 phone 数字。目前,我正在做以下事情:

resp=collection.find({},{'data.phone_number':1,'_id':0})
df=pd.DataFrame(list(map(lambda x: x['data'],list(resp))))

有没有更自然的方式来执行此操作?

如果 phone 个数字是唯一的,您可以使用 distinct

numbers = collection.distinct('data.phone_number')
df=pd.DataFrame(numbers, columns = ['phone_number'])

如果它们不是唯一的,则没有真正更好的方法,您可以使用聚合管道实现类似的结果,但它不会真正提高性能。