Сброс панды Timestamp на первый день месяца - PullRequest
2 голосов
/ 07 мая 2019

df - фрейм данных панд.Столбец df["Date"] является полем даты и времени.

test_date = df.loc[300, "Date"]  # Timestamp('2019-02-12 00:00:00')

Я хочу сбросить его до первого дня.Я попытался:

test_date.day = 1  # Attribute 'day' of 'datetime.date' objects is not writable

Как мне сбросить его обратно в первый день (желательно без загрузки других библиотек)?

Этот пост похож на то, что я хочуделать, но он использует Python 2 и более старую версию панд.

Ответы [ 2 ]

3 голосов
/ 07 мая 2019

Возможно, вы ищете test_date = test_date.replace(day=1).

datetime.date.replace ()

2 голосов
/ 07 мая 2019

Пример кадра данных:

di

Out[708]:
                          0
0 2014-08-25 10:00:00+05:30
1 2014-08-26 10:00:00+05:30
2 2014-08-27 10:00:00+05:30
3 2014-08-28 10:00:00+05:30
4 2014-08-29 10:00:00+05:30
5 2014-08-30 10:00:00+05:30
6 2014-08-31 10:00:00+05:30
7 2014-09-01 10:00:00+05:30
8 2014-09-02 10:00:00+05:30
9 2014-09-03 10:00:00+05:30

Чтобы получить первую дату месяца:

di[0].dt.date + pd.offsets.Day() - pd.offsets.MonthBegin()

Out[709]:
0   2014-08-01
1   2014-08-01
2   2014-08-01
3   2014-08-01
4   2014-08-01
5   2014-08-01
6   2014-08-01
7   2014-09-01
8   2014-09-01
9   2014-09-01
Name: 0, dtype: datetime64[ns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...