Pandas/Python如何存储循环值

Pandas/Python如何存储循环值,python,pandas,loops,dictionary,Python,Pandas,Loops,Dictionary,我尝试将多个标记循环到一个函数中,我可以成功打印结果,但是我无法存储它们,只输出最后一个元素。循环似乎覆盖了先前生成的值,请您提出建议 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' o

我尝试将多个标记循环到一个函数中,我可以成功打印结果,但是我无法存储它们,只输出最后一个元素。循环似乎覆盖了先前生成的值,请您提出建议

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'}
{'zip': '30328', 'sector': 'Financial Services', 'symbol': 'ICE'}
如果b打印在代码之外,则结果为:

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

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

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

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)

您好,谢谢,但是我收到以下消息:ValueError:如果使用所有标量值,您必须传递一个indexI已更正答案感谢您的工作!您知道为什么使用列表而不是数据帧不起作用吗?因为您是从循环的每次运行开始创建dict的。您需要将其附加到数组或数据帧(如我的解决方案)中,谢谢!