【发布时间】:2019-07-19 13:28:22
【问题描述】:
我想将我的日期列中的所有天数替换为 01(当月的第一天),并计算我的数据框中每个值在某个日期之前剩余的月份。
我的数据框如下所示:
Date
2019-02-10
2017-03-02
2018-02-03
我的日期是2019-10-31。我想知道这两个日期之间有多少个月,并生成一个包含月数的列。
这几天我都试过替换,但没有成功。
对于月份的计算,我将原始日期加一个月(计算所需),生成结束日期(关闭)并简单地减去它们。
dfA.loc[dfA.day > 1, 'DepreDate'] = dfA.date + pd.DateOffset(months=1)
closing = date(today.year, 10, 31)
time_to = abs(dfA.DepreDate - closing)
但我得到了错误:
不支持的操作数类型 -: 'DatetimeIndex' 和 'datetime.date'
编辑(已解决):Ankur Sinha 通过添加解决了它:
dfA['First_Date_Month'] = dfA['date'] + pd.offsets.MonthBegin(1)
dfA['Time_Left_In_Months'] = dfA['Closing'].dt.month - dfA['First_Date_Month'].dt.month
并根据年份增加 12 个月:
dfA.loc[dfA["First_Date_Month"].dt.year == 2018,'Time_Left_In_Months'] = dfA["Time_Left_In_Months"] + 12
【问题讨论】:
-
dfA的全称是什么?