pandas 为专栏增添一天 [英] Pandas add one day to column

查看:68
本文介绍了 pandas 为专栏增添一天的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为每个日期添加1天,我想获得下个月的开始日期,例如2014年1月2014年,这是数据框中的第一项. 尝试过:

I need to add 1 day to each date I want to get the begining date of the following month eg 2014-01-2014 for the 1st item in the dataframe. Tried:

montdist['date'] + pd.DateOffset(1)

哪个给我:

TypeError: cannot use a non-absolute DateOffset in datetime/timedelta operations [<DateOffset>]

具有数据框:

    Units   mondist                date
1    6491  0.057785 2013-12-31 00:00:00
2    7377  0.065672 2014-01-31 00:00:00
3    9990  0.088934 2014-02-28 00:00:00
4   10362  0.092245 2014-03-31 00:00:00
5   11271  0.100337 2014-04-30 00:00:00
6   11637  0.103596 2014-05-31 00:00:00
7   10199  0.090794 2014-06-30 00:00:00
8   10486  0.093349 2014-07-31 00:00:00
9    9282  0.082631 2014-08-31 00:00:00
10   8632  0.076844 2014-09-30 00:00:00
11   8204  0.073034 2013-10-31 00:00:00
12   8400  0.074779 2013-11-30 00:00:00

推荐答案

首先将其设为DatetimeIndex:

Make it a DatetimeIndex first:

pd.DatetimeIndex(montdist['date']) + pd.DateOffset(1)

注意:我认为有一个功能要求,该要求可以与日期列配合使用...

实际情况:

In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])

In [12]: df['date'] = pd.to_datetime(['21-11-2013', '22-11-2013'])

In [13]: pd.DatetimeIndex(df.date) + pd.DateOffset(1)
Out[13]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-11-22 00:00:00, 2013-11-23 00:00:00]
Length: 2, Freq: None, Timezone: None

In [14]: pd.DatetimeIndex(df.date) + pd.offsets.Hour(1)
Out[14]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-11-21 01:00:00, 2013-11-22 01:00:00]
Length: 2, Freq: None, Timezone: Non

这篇关于 pandas 为专栏增添一天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆