Python для преобразования различных форматов даты в столбце - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь скрыть столбец с разными форматами даты.

Например:

month
2018-01-01             float64
2018-02-01             float64
2018-03-01             float64
2018-03-01 00:00:00    float64
2018-04-01 01:00:00    float64
2018-05-01 01:00:00    float64
2018-06-01 01:00:00    float64
2018-07-01 01:00:00    float64

Я хочу преобразовать все в столбце в месяц и год. Например, я хотел бы 18 января, 18 февраля, 18 марта и т. Д.

Я пытался использовать этот код для первого преобразования моего столбца в дату и время:

df['month'] =  pd.to_datetime(df['month'], format='%Y-%m-%d')

Но он возвращает float64:

Из

month
2018-01-01 00:00:00    float64
2018-02-01 00:00:00    float64
2018-03-01 00:00:00    float64
2018-04-01 01:00:00    float64
2018-05-01 01:00:00    float64
2018-06-01 01:00:00    float64
2018-07-01 01:00:00    float64

В моем выводе в CSV формат месяца был изменен на 05.05.2016 00:00:00. Можете ли вы помочь мне скрыть только месяц и год, например Август-18.

Спасибо

1 Ответ

0 голосов
/ 28 августа 2018

Полагаю, у вас есть датафрейм Pandas. В этом случае вы можете использовать pd.Series.dt.to_period:

s = pd.Series(['2018-01-01', '2018-02-01', '2018-03-01',
               '2018-03-01 00:00:00', '2018-04-01 01:00:00'])

res = pd.to_datetime(s).dt.to_period('M')

print(res)

0   2018-01
1   2018-02
2   2018-03
3   2018-03
4   2018-04
dtype: object

Как видите, это приводит к серии dtype object, которая, как правило, неэффективна. Лучшая идея - установить день на конец месяца и поддерживать ряд datetime, представленный целыми числами.

...