Python Pandas DataFrame 日期索引的偏移日期

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19820280/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 14:42:35  来源:igfitidea点击:

Offset date for a Pandas DataFrame date index

pythonpandas

提问by dartdog

Given a Pandas dataframe created as follows:

给定一个 Pandas 数据框,创建如下:

dates = pd.date_range('20130101',periods=6)
df = pd.DataFrame(np.random.randn(6),index=dates,columns=list('A'))

                  A
2013-01-01   0.847528
2013-01-02   0.204139
2013-01-03   0.888526
2013-01-04   0.769775
2013-01-05   0.175165
2013-01-06  -1.564826

I want to add 15 days to the index. This does not work>

我想在索引中添加 15 天。这不起作用>

#from pandas.tseries.offsets import *
df.index+relativedelta(days=15)
#df.index + DateOffset(days=5)

TypeError: relativedelta(days=+15)

I seem to be incapable of doing anything right with indexes....

我似乎无法对索引做任何正确的事情....

采纳答案by Roman Pekar

you can use DateOffset:

您可以使用DateOffset

>>> df = pd.DataFrame(np.random.randn(6),index=dates,columns=list('A'))
>>> df.index = df.index + pd.DateOffset(days=15)
>>> df
                   A
2013-01-16  0.015282
2013-01-17  1.214255
2013-01-18  1.023534
2013-01-19  1.355001
2013-01-20  1.289749
2013-01-21  1.484291

回答by fantabolous

Marginally shorter/more direct is tshift:

稍短/更直接的是tshift

df = df.tshift(15, freq='D')

A list of freq aliases is here: http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases

频率别名列表在这里:http: //pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases