如何在python中为每个月添加每月的最后一天

时间:2018-10-12 06:30:34

标签: python pandas

我的数据格式如下:

final.head(5)

Head of the data, displaying sales for each month from May 2015

(数据头,显示从2015年5月开始的每个月的销售额)

我想为每个记录添加每月的最后一天,并希望得到这样的输出

transactionDate sale_price_after_promo
05/30/2015  30393.8
06/31/2015  24345.68
07/30/2015  26688.91
08/31/2015  46626.1
09/30/2015  27933.84
10/31/2015  76087.55

我尝试过

pd.Series(pd.DatetimeIndex(start=final.start_time, end=final.end_time, freq='M')).to_frame('transactionDate')

但是出现错误

'DataFrame' object has no attribute 'start_time'

1 个答案:

答案 0 :(得分:2)

创建PeriodIndex,然后将其转换为to_timestamp

df = pd.DataFrame({'transactionDate':['2015-05','2015-06','2015-07']})

df['date']  = pd.PeriodIndex(df['transactionDate'], freq='M').to_timestamp(how='end')
print (df)
  transactionDate       date
0         2015-05 2015-05-31
1         2015-06 2015-06-30
2         2015-07 2015-07-31