How floor a date to the first date of that month?

后端 未结 8 1212
我寻月下人不归
我寻月下人不归 2021-01-01 17:43

I have a pandas DataFrame with index column = date.

Input:

            value
date    
1986-01-31  22.93
1986-02-28  15.46
8条回答
  •  北荒
    北荒 (楼主)
    2021-01-01 18:04

    This will do the trick and no imports necessary. Numpy has a dtype datetime64 which by default pandas sets to [ns] as seen by checking the dtype. You can change this to month, which will start on the first of the month by accessing the numpy array and changing the type.

    df.date = pd.to_datetime(df.date.values.astype('datetime64[M]'))
    

    It would be nice if pandas would implement this with their own astype() method but unfortunately you cannot.

    The above works for data as datetime values or strings, if you already have your data as datetime[ns] type you can omit the pd.to_datetime() and just do:

    df.date = df.date.values.astype('datetime64[M]')
    

提交回复
热议问题