通过Python下载股票数据到excel缺少日期列

问题描述

我想将股票数据下载到单个 Excel 文件中,但在执行此操作时,我遇到了一个问题,我很难为我的股票数据库获取日期列。

Goal - Picture example

谁能帮我找出为什么我会得到这样的结果?我该如何解决这个问题?

import pandas as pd
import pandas_datareader as pdr
import datetime as dt

file = str(input('Enter File Name - '))

download_sourrce = (r"C:\Users\vladt\OneDrive\Рабочий стол\Stock\{}.xlsx".format(file))
writer = pd.ExcelWriter(download_sourrce,engine='xlsxwriter')

should_continue = True

while should_continue: 
    
    x = str(input('Stock? - '))
    
    start = dt.datetime(2020,1,1)
    end = dt.datetime.today()
    
    df = pdr.get_data_yahoo(x,start,end)
    
    df.to_excel(writer,sheet_name=x,index=False)
    
    should_continue = input('Add new stock? [Y/N]').upper() == 'Y'
    
writer.save()

解决方法

在保存到 Excel 之前尝试以下操作:

df = df.reset_index()

pandas datareader(来自雅虎或其他公司向 pandas datareader 提供数据读取器)或其他股票经纪人提供的其他 API/包的股票数据馈送很常见,将日期列设置为行索引。

对于这种设置为行索引的日期序列,您必须重置索引才能将其内容放入数据列中。