我正在尝试获取数据框中两个单独列中两个日期之间的月份差。我在stackoverflow中查看了多个示例,但是当我实现这些方法时,我得到了负数。以下是我的df和我正在使用的代码的示例。
issued_date final_date months delta
29/05/2017 31/05/2020 36 36.6
25/02/2019 31/05/2020 15 15.36666667
04/07/2020 31/05/2020 -1 -1.133333333
03/09/2020 31/05/2020 -3 -3.166666667
06/07/2019 31/05/2020 10 11
25/01/2018 31/05/2020 28 28.56666667
issued_date和final_date的数据类型相同:
datetime64[ns]
我尝试了下面的不同版本,您可以找到每个版本
df['delta'] = df['final_date'] - df['issued_date']
df['delta'] = df['delta'].dt.days/30
df['months'] = df['final_date'].sub(df['issued_date'],
axis=0)
df['months'] = df['months'] / np.timedelta64(1, 'M')
df['months'] = df['months'].astype(int)
我不知道为什么它要计算错误的月份数。
答案 0 :(得分:0)
月数是正确的。您有一些发布日期晚于最终发布日期。
答案 1 :(得分:0)
我认为问题在于,每一行中的日期转换都不同。因此,使计算正确。我需要确定每个人的不同之处