从熊猫中的日期减去/删除天数

时间:2015-08-13 04:45:24

标签: python pandas

我有一个约8000行的日期数据框,我希望以某种方式删除日期部分:

开始:

df2[['day','shifted_date']].head(3)

 day    shifted_date
  31    2015-03-31
  28    2015-02-28
  14    2015-01-14

结束1:

df2[['day','shifted_date']].head(3)

`day    shifted_date`
  31    2015-03-01
  28    2015-02-01
  14    2015-01-01

或结束2:

df2[['day','shifted_date']].head(3)

`day    shifted_date`
  31    2015-03
  28    2015-02
  14    2015-01

我一直在搞乱这些,这些不起作用,因为他们没有把数组/切片作为输入,据我所知:

   # timedelta(days=df2['day'])
   # datetime.date(df2['year'], df2['month'],31)

所以我真正想要的是

 df2[['shifted_date']] = magicalfunction.df2[['day','shifted_date']] 

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

Pandas数据框将返回一个日期对象,您可以将其格式化为您需要的内容,而不是使用timedelta进行日期数学运算:

>>> import datetime
>>> d = datetime.date(2015,3,31)
>>> datetime.datetime.strptime('{0.year}-{0.month}'.format(d), '%Y-%m')
datetime.datetime(2015, 3, 1, 0, 0)