UPD:
Как собрать дату из двух серий (месяц, день)? Несмотря на простоту вопроса и ознокомления с документацией к pandas, решения не нашёл.
Пример серий:
Month Year
0 February 2017
1 July 2017
2 November 2017
3 September 2017
4 August 2017
5 March 2017
6 March 2017
7 August 2017
8 March 2017
9 March 2017
10 August 2017
В результате требуется получить серию Period типа February 2017. Тип данных нужен дата.
Ответ
Чтобы создать новый столбец с типом datetime
In [65]: df['Date'] = pd.to_datetime(df.astype(str).add(' ').sum(1))
In [66]: df
Out[66]:
Month Year Date
0 February 2017 2017-02-01
1 July 2017 2017-07-01
2 November 2017 2017-11-01
3 September 2017 2017-09-01
4 August 2017 2017-08-01
5 March 2017 2017-03-01
6 March 2017 2017-03-01
7 August 2017 2017-08-01
8 March 2017 2017-03-01
9 March 2017 2017-03-01
10 August 2017 2017-08-01
In [67]: df.dtypes
Out[67]:
Month object
Year int64
Date datetime64[ns]
dtype: object
Чтобы создать новый столбец с типом Period
In [69]: df['Period'] = pd.PeriodIndex(pd.to_datetime(df.astype(str).add(' ').sum(1)), freq='M')
In [70]: df
Out[70]:
Month Year Period
0 February 2017 2017-02
1 July 2017 2017-07
2 November 2017 2017-11
3 September 2017 2017-09
4 August 2017 2017-08
5 March 2017 2017-03
6 March 2017 2017-03
7 August 2017 2017-08
8 March 2017 2017-03
9 March 2017 2017-03
10 August 2017 2017-08
In [71]: df.dtypes
Out[71]:
Month object
Year int64
Period object
dtype: object
In [72]: df.Period.dt.days_in_month
Out[72]:
0 28
1 31
2 30
3 30
4 31
5 31
6 31
7 31
8 31
9 31
10 31
Name: Period, dtype: int64
Комментариев нет:
Отправить комментарий