将错误值添加到pandas数据框

问题描述

我想创建一个列表并将其转换为DataFrame。我知道如何使用除外和继续方法来完成循环。

代码看起来像这样:

import pandas as pd
import requests

list = ['A','AAPL']
url_balance_sheet = 'https://www.alphavantage.co/query?function=BALANCE_SHEET&symbol={}&apikey=DEMO'
records = []

for s in list:

try:
    response = requests.get(url_balance_sheet.format(s))
    data = response.json()

    records.append({
    'symbol': data['symbol'],'total_asset' : data['annualReports'][1]['totalAssets']

except KeyError:
    continue

df = pd.DataFrame(records)

我可以知道如何在列表上添加错误符号和消息,然后可以创建数据框并显示错误吗?

结果应如下所示:

    symbol.    total_asset.    Note
0.  A.         5223000
1.  AAPL.                      KeyError

解决方法

以下代码在发生错误时将“ KeyError”添加到“注释”列中

import pandas as pd
import requests

lists = ['A','AAPL','AAA']
url_balance_sheet = 'https://www.alphavantage.co/query?function=BALANCE_SHEET&symbol={}&apikey=DEMO'
records = []

for s in lists:
    try:
        response = requests.get(url_balance_sheet.format(s))
        data = response.json()
        records.append({
        'symbol': data['symbol'],'total_asset' : data['annualReports'][1]['totalAssets']})
    except KeyError:
        records.append({
            'symbol': s,'Note':'KeyError'
        })
        continue

df = pd.DataFrame(records)
df
    symbol  total_asset Note
0   A         8541000000    NaN
1   AAPL    365725000000    NaN
2   AAA              NaN    KeyError