在DataFrame创建之后设置pandas的freq频率DatetimeIndex

use*_*545 12 python pandas

我使用pandas datareader获取股票数据.

import pandas as pd
import pandas_datareader.data as web
ABB = web.DataReader(name='ABB.ST', 
                     data_source='yahoo',
                     start='2000-1-1')
Run Code Online (Sandbox Code Playgroud)

但是,默认情况下,未在结果数据帧上设置freq.我需要freq才能使用索引导航,如下所示:

for index, row in ABB.iterrows():
    ABB.loc[[index + 1]]
Run Code Online (Sandbox Code Playgroud)

如果未在DatetimeIndex上设置freq,则无法使用+1etc进行导航.

我发现的是两个功能astyperesample.由于我已经知道freq resample看起来有点矫枉过正,我只想将freq设置为每日.

现在我的问题是如何在ABB上使用astype将频率设置为每日?

Abd*_*dou 12

尝试:

ABB = ABB.asfreq('d')
Run Code Online (Sandbox Code Playgroud)

这应该将频率更改为每日一天,NaN没有数据.

此外,您应该重写for-loop如下:

for index, row in ABB.iterrows():
    print(ABB.loc[[index + pd.Timedelta(days = 1)]])
Run Code Online (Sandbox Code Playgroud)

谢谢!


Roh*_*ndi 7

ABB 是 pandas DataFrame,其索引类型为DatetimeIndex

DatetimeIndex具有freq属性,可以设置如下

ABB.index.freq = 'd'
Run Code Online (Sandbox Code Playgroud)

看看变化

ABB.index
Run Code Online (Sandbox Code Playgroud)