从mongo加载JSON到Python Dataframe时,你应该如何处理NaN?

问题描述 投票:2回答:1

当我尝试将json“压平”到数据帧时,我收到一个错误,我相信这是因为有些单元格中有NaN。处理这个问题的最佳方法是什么?

我得到的错误是“AttributeError:'float'对象没有属性'keys'”

import pandas as pd

from pymongo import MongoClient
client = MongoClient()

client = MongoClient('mongodb://localhost:27017/')


#Import Counterparties
counterpartydb = client.counterparties
cptylist = counterpartydb.counterparties

cptylists = pd.DataFrame(list(cptylist.find()))
details = pd.DataFrame(list(cptylists['details']))

CurRating = pd.DataFrame(list(cptylists['currentRating']))

Example of cptylists for example

json python-3.x pandas
1个回答
0
投票

由于MongoDB是无模式的,因此响应中有时会出现Null值。您可以迭代这些并检查值是否为None。

cptylists = pd.DataFrame(list(cptylist.find()))
creditRating = []
for rating in cptylists['creditRating']:
    if rating['creditRating'] is not None:
        creditRating.append(rating['creditRating'])
    else:
        creditRating.append('No value in database')
creditRating = pd.DataFrame(creditRating)

列表理解版本如下:

if 'creditRating' in cptylists:
    creditRating = pd.DataFrame([k for k in (cptylists['creditRating'] or [])] )
© www.soinside.com 2019 - 2024. All rights reserved.