Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pandas: convert date in month to the 1st day of next month

I am wondering if there are any efficient methods or one-liner that, given a pandas DatetimeIndex date1, return a DatetimeIndex date2 that is the first day of the next month?

For example, if date1 is '2011-09-30' then date2 is '2011-10-01'?

I have tried this one liner

    df.index.to_period("M").to_timestamp('M')

But this seems only able to return the "last day of the same month". Is it possible to do some datetime arithmetic here?

Thanks!

like image 812
yuqli Avatar asked Apr 26 '17 13:04

yuqli


1 Answers

You can use pd.offsets.MonthBegin()

In [261]: d = pd.to_datetime(['2011-09-30', '2012-02-28'])

In [262]: d
Out[262]: DatetimeIndex(['2011-09-30', '2012-02-28'], dtype='datetime64[ns]', freq=None)

In [263]: d + pd.offsets.MonthBegin(1)
Out[263]: DatetimeIndex(['2011-10-01', '2012-03-01'], dtype='datetime64[ns]', freq=None)

You'll find a lot of examples in the official Pandas docs

like image 86
MaxU - stop WAR against UA Avatar answered Sep 18 '22 13:09

MaxU - stop WAR against UA