在我的熊猫数据框中,我想找出月份之间的日期差异。该函数将.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')
Run Code Online (Sandbox Code Playgroud)
我预期为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
Run Code Online (Sandbox Code Playgroud)