python - 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 行
解决方案
您可以将它们附加到数据框:
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)
推荐阅读
- java - Apache Ignite - Java 瘦客户端终止
- r - 使用函数在 by in data.table 语句中传递字符向量
- python - 在 php 文件中执行 script.sh 不起作用
- powerbi - 根据日期分析 2 个表中的数据
- docker - 在 Windows 和 PhpStorm 上使用 Docker 进行 Xdebug
- laravel - 让 laravel、vuejs 和 Flutter 协同工作的最佳方式是什么?
- excel - 带有 Excel VBA 的幻灯片指示器
- javascript - 有什么不同 '
' 和 '{ Toolbar() }' 在反应渲染中? - python - 使用opencv从验证码中提取字母
- mysql - 替换列中的值而不创建新列