使用 concat 函数而不是 append

Using concat functions instead of append

我正在尝试使用 concat 函数而不是 append 从这段代码中产生相同的输出:

final_dataframe = pd.DataFrame(columns = my_columns)

for symbol in stocks['Ticker'][:5]:
    api_url = f'https://sandbox.iexapis.com/stable/stock/{symbol}/quote?token={IEX_CLOUD_API_TOKEN}'
    data = requests.get(api_url).json()
    final_dataframe = final_dataframe.append(
                                    pd.Series([symbol, 
                                               data['latestPrice'], 
                                               data['marketCap'], 
                                               'N/A'], 
                                              index = my_columns), 
                                    ignore_index = True)

输出是这样的:

    Ticker  Stock_price Market_capitalization   Number_of_shares_to_buy
0   A         144.3       42532431075                   N/A
1   AAL       17.16       11068908461                   N/A
2   AAP       210.74      12880265047                   N/A
3   AAPL      167.43      2762301276735                 N/A
4   ABBV      164.5       287271211810                  N/A

这不是将数据逐行附加到 DataFrame 的最佳策略。首先将您的数据收集到 Python 数据结构(这里是字典列表),然后从该数据结构创建数据框。

尝试:

tickers = []
for symbol in stocks['Ticker'][:5]:
    api_url = f'https://sandbox.iexapis.com/stable/stock/{symbol}/quote?token={IEX_CLOUD_API_TOKEN}'
    data = requests.get(api_url).json()
    d = dict(zip(my_columns, [symbol, data['latestPrice'], data['marketCap'], 'N/A']))
    tickers.append(d)
df = pd.DataFrame(tickers)

输出:

>>> df
  Ticker  Stock_price  Market_capitalization  Number_of_shares_to_buy
0      A       144.30            42532431075                      NaN
1    AAL        17.16            11068908461                      NaN
2    AAP       210.74            12880265047                      NaN
3   AAPL       167.43          2762301276735                      NaN
4   ABBV       164.50           287271211810                      NaN