首页 > 解决方案 > Pandas/Python 如何存储循环值

问题描述

我正在尝试将多个代码循环到一个函数中,并且我可以成功打印结果但是我无法存储它们,只输出最后一个元素。循环似乎覆盖了之前生成的值,你能建议吗?

import yfinance as yf

y = ['SBUX', 'ICE']
b = {}

for x in y:
    ticker = yf.Ticker(x)
    d = ticker.get_info()
    for k, v in d.items():
        if k == 'zip' or k == 'sector' or k == 'symbol':
            b[k] = d[k]
    print(b)

代码结果:

{'zip': '98134', 'sector': 'Consumer Cyclical', 'symbol': 'SBUX'}
{'zip': '30328', 'sector': 'Financial Services', 'symbol': 'ICE'}

如果 b 在代码之外打印,则结果:

{'zip': '30328', 'sector': 'Financial Services', 'symbol': 'ICE'}

我希望能够在代码之外打印 2 行

标签: pythonpandasloopsdictionary

解决方案


您可以将它们附加到数据框:

import yfinance as yf
import pandas as pd

new_df = pd.DataFrame()
y = ['SBUX', 'ICE']
b = {}

for x in y:
    ticker = yf.Ticker(x)
    d = ticker.get_info()
    for k, v in d.items():
        if k == 'zip' or k == 'sector' or k == 'symbol':
            b[k] = d[k]
    new_df = new_df.append(b, ignore_index=True)

推荐阅读