我的数据格式如下:
final.head(5)
(数据头,显示从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'
答案 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