В моем фреймворке pandas я хочу найти разницу между датами в месяцах. Функция .dt.to_period('M')
возвращает объект MonthEnd, например <11 * MonthEnds>
, вместо номера месяца.
Я попытался изменить тип столбца с помощью pd.to_numeric()
и удалить буквы с помощью re.sub("[^0-9]", "", 'blablabla123bla')
. Оба не работают с объектом MonthEnd
.
df['duration_dataset'] = df['date_1'].dt.to_period('M') - df['date_2'].dt.to_period('M')
Я ожидал 11, но результат был <11 * MonthEnds>
.
Вот минимальный фрейм данных
d = {'date_1': ['2018-03-31','2018-09-30'], 'date_2': ['2017-12-31','2017-12-31']}
df = pd.DataFrame(data=d)
df['date_1'] = pd.to_datetime(df['date_1'], format='%Y-%m-%d')
df['date_2'] = pd.to_datetime(df['date_2'], format='%Y-%m-%d')
df['duration_dataset'] = df['date_1'].dt.to_period('M') - df['date_2'].dt.to_period('M')
df
MonthEnd
, чтобы мы могли помочь исправить это и вместо этого получить целочисленное количество месяцев. - person Martijn Pieters   schedule 31.01.2019MonthEnd
, используя<object>.__dict__['n']
- person alphazeta   schedule 30.03.2020