【问题标题】:Python and Pandas Creating Multiple Dynamic Excel Sheets with DataframesPython 和 Pandas 使用数据框创建多个动态 Excel 表
【发布时间】:2020-08-21 20:43:26
【问题描述】:

提前致谢!我已经挣扎了几天,所以这意味着我该问一个问题了。我有一个程序,它使用模块“yfinance”提取三只股票的信息它使用 txt 文件中的股票代码列表。我可以使用 for 循环将预期信息放入列表中每个股票代码的数据框中。然后,我想在 Excel book 中将每个单独的代码的信息保存在其自己的 sheet 上,其中 sheet 名称是代码。截至目前,我最终创建了三个不同的数据框,但 Excel 输出只有一个选项卡,其中包含最后请求的股票信息 (MSFT)。我想我可能需要使用附加过程来创建一个包含每个数据框信息的新选项卡,感谢您的任何建议。

代码

import platform
import yfinance as yf
import pandas as pd
import csv

# check versions
print('Python Version: ' + platform.python_version())
print('YFinance Version: ' + yf.__version__)

# load txt of tickers to list, contains three tickers
tickerlist = []
with open('tickers.txt') as inputfile:
    for row in csv.reader(inputfile):
        tickerlist.append(row)

# iterate through ticker txt file
for i in range(len(tickerlist)):
    tickersymbol = tickerlist[i]
    stringticker = str(tickersymbol)
    stringticker = stringticker.replace("[", "")
    stringticker = stringticker.replace("]", "")
    stringticker = stringticker.replace("'", "")

    # set data to retrievable variable
    tickerdata = yf.Ticker(stringticker)
    tickerinfo = tickerdata.info

    # data items requested
    investment = tickerinfo['shortName']
    country = tickerinfo['country']

    # create dataframes from lists
    dfoverview = pd.DataFrame({'Label': ['Company', 'Country'],
                          'Value': [investment, country]
                           })

    print(dfoverview)
    print('-----------------------------------------------------------------')

    #export data to each tab (PROBLEM AREA)
    dfoverview.to_excel('output.xlsx',
                        sheet_name=stringticker)

输出

Python 版本:3.7.7

YFinance 版本:0.1.54

公司沃尔玛公司

国家美国

特斯拉公司

国家美国

公司微软公司

国家美国

进程以退出代码 0 结束

编辑:删除原件以尝试发布到正确的论坛/位置

【问题讨论】:

  • 谢谢,我已经阅读了一些文档,并将检查此文档,如果它解决了我的问题,请告诉您。这确实提到了一个遗憾的是无法找到搜索的附加项目。有时你只是想念一些东西!将与您联系。
  • 很多时候我搜索了很多,却错过了一篇可以节省我时间的简单文章。我确实尝试了几天,这很可悲。在我问之前,我总是尝试这样做。这里有个问题。不知何故,我尝试了各种各样的东西,但没有尝试这个实际的附加链接,即使我知道使用“附加”这个词。这对我来说很难过。但是,那个快速链接解决了我的问题,所以谢谢你,我很高兴我来到这里。

标签: python excel pandas dataframe export-to-excel


【解决方案1】:

如果您的所有股票信息都在一个数据框中,Pandas groupby() 方法在这里很适合您(如果我正确理解您的问题)。这是伪的,但请尝试这样的事情:

import pandas as pd

# df here represents your single data frame with all your ticker info
# column_value is the column you choose to group by
# this column_value will also be used to dynamically create your sheet names
ticker_group = df.groupby(['column_value'])

# create the writer obj
with pd.ExcelWriter('output.xlsx') as writer:
    # key=str obj of column_value, data=dataframe obj of data pertaining to key
    for key, data in ticker_group:
        ticker_group.get_group(key).to_excel(writer, sheet_name=key, index=False)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-25
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 2021-11-07
    • 2019-11-08
    • 2021-02-01
    相关资源
    最近更新 更多