【问题标题】:Creating Multiple Pandas Data Frames in a loop循环创建多个 Pandas 数据框
【发布时间】:2021-11-05 08:03:13
【问题描述】:

尝试为列表中的每个股票代码创建一个 pandas 数据框

我的代码:

for ticker in stock_tickers:
   
     data = pd.read_csv(f'{ticker}_{get_date()}.csv')

它只会为最后一个股票代码创建一个 pandas 数据框......无论如何都要这样做吗?

【问题讨论】:

  • 在 for 循环之外创建一个列表,然后 .append() 新创建的 pandas 数据框
  • 您能否提供更多详细信息。您的所有 csv 文件都需要一个数据框,还是需要一个数据框列表?
  • 这不是“只为最后一个股票代码创建一个熊猫数据帧”,每次迭代都会创建并覆盖每个代码的数据帧!当循环结束时,data 恰好是最后一个数据帧,唯一没有被覆盖的数据帧。确实,您需要阅读和pd.concat () 多个数据框,并带有一个额外的“ticker”列。数据框不会神奇地连接自己,您必须明确地这样做。
  • How to append/concat pandas dataframes of stock prices into one large dataframe 的副本。此问题每月重新提出一次,请查看现有重复项。

标签: python pandas


【解决方案1】:

您最终只得到一个数据集,因为data 变量在循环的每一步都会被覆盖。

您可以将数据存储在字典中(假设ticker 是一个字符串):

data = {}

for ticker in stock_tickers:
    data[ticker] = pd.read_csv(f'{ticker}_{get_date()}.csv')

使用字典理解的更紧凑的版本:

data = {ticker: pd.read_csv(f'{ticker}_{get_date()}.csv')
        for ticker in stock_tickers}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2017-06-01
    • 2019-10-14
    • 2018-07-30
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多