Python 在将每日数据转换为每周数据时,使用

Python 在将每日数据转换为每周数据时,使用,python,pandas,resampling,pandas-datareader,Python,Pandas,Resampling,Pandas Datareader,通过查看前面的答案,我成功地将每日数据转换为每周数据,但我将日期设置为索引。我的目标是保留'Symbol'作为索引,并将'Date'作为一列 我尝试在字典中包含'Date'和符号作为索引,但结果是索引需要是Datetime 这是我的代码: if ( data_duration == 'w' ): df['Date'] = pd.to_datetime(df['Date']) df.set_index('Date', inplace=True) df.sort_index

通过查看前面的答案,我成功地将每日数据转换为每周数据,但我将日期设置为索引。我的目标是保留'Symbol'作为索引,并将'Date'作为一列

我尝试在字典中包含'Date'和符号作为索引,但结果是索引需要是Datetime

这是我的代码:

if ( data_duration == 'w' ):

    df['Date'] = pd.to_datetime(df['Date'])
    df.set_index('Date', inplace=True)
    df.sort_index(inplace=True)



def take_first(array_like):
    return array_like[0]

def take_last(array_like):
    return array_like[-1]

output = df.resample('W',                                 # Weekly resample
                    how={'Open': take_first, 
                         'High': 'max',
                         'Low': 'min',
                         'Close': take_last,
                         'Volume': 'sum'}, 
                    loffset=pd.offsets.timedelta(days=-6))  # to put the labels to Monday

df = output[['Open', 'High', 'Low', 'Close', 'Volume']]
但我想保留我的索引为“符号”,就像它在每日数据中一样,同时在“输出”中包含日期

这是每日数据的外观:

             Date       Close      High       Low      Open    Volume
Symbol                                                            
AAPL        2017-05-25  153.87  154.3500   153.0300      153.7300      19235598
AAPL        2017-05-26  153.61  154.2400  153.3100      154.0000      21927637
但是,在每周格式化之后,除了“Symbol”之外,所有内容都保持不变。如何修复此问题?

您想要
取消堆栈()

它会将其中一个索引级别移动为数据帧中的一列。大概是这样的:

 df.unstack('Date')