我有一个约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']]
任何帮助都会非常感激。
答案 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)