【问题标题】:How to split Dictionary file to multiple data frames in Python如何在 Python 中将字典文件拆分为多个数据框
【发布时间】:2021-12-16 10:01:10
【问题描述】:

是否有任何可能的方法将每个数据框和名称拆分为相应字典的键?

比如AAIT 是一个DataFrame,AAL 是一个DataFrame,等等

刮取方法

import pandas as pd
import yfinance as yf

start = pd.to_datetime('01/01/2015').date()
end = pd.to_datetime('today').date()

url="https://pkgstore.datahub.io/core/nasdaq-listings/nasdaq-listed_csv/data/7665719fb51081ba0bd834fde71ce822/nasdaq-listed_csv.csv"
s = requests.get(url).content
companies = pd.read_csv(io.StringIO(s.decode('utf-8')))


Symbols = companies['Symbol'].tolist()


# create empty dataframe
stock_final = pd.DataFrame()
# iterate over each symbol
for i in Symbols[0:11]:  
    
    # print the symbol which is being downloaded
    print( str(Symbols.index(i)) + str(' : ') + i, sep=',', end=',', flush=True)  
    
    try:
        # download the stock price 
        stock = []
        stock = yf.download(i,start=start, end=end, progress=False)
        
        # append the individual stock prices 
        if len(stock) == 0:
            None
        else:
            stock['Name']=i
            stock_final = stock_final.append(stock,sort=False)
    except Exception:
        None

我希望每个都在单独的数据框中,为此将所有内容组合为dict 格式。

还有其他方法可以获取单独的 DataFrames 吗?

【问题讨论】:

  • 使用以股票为键的数据框字典。

标签: python pandas web-scraping yfinance


【解决方案1】:

只需稍微更改代码即可满足您的需求。

  1. stock_final 更改为 dict 而不是 DataFrame:
  2. 在您的 for 循环中,您只需将股票数据分配给特定键
代码:
symbols = companies['Symbol'].tolist()
stock_final = dict()
for i, s in enumerate(symbols[0:11]):  
    print(f"{i}: {s}")
    try:
        # download the stock price 
        stock = yf.download(s, start=start, end=end, progress=False)
        # add stock data to the final dictionary
        if len(stock) > 0:
            stock_final[s] = stock
    
    except Exception:
        pass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-08
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2021-04-15
    • 2023-03-22
    相关资源
    最近更新 更多