如何计算熊猫列中日期时间的剩余月份数?

用户11642562

我想将日期列中的所有天数替换为 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
安库·辛哈

如果我理解正确,你有这个:

        Date     Target
0 2019-02-10 2019-10-31
1 2017-03-02 2019-10-31
2 2018-02-03 2019-10-31

您想从原始日期的第一个日期开始添加一个月:

df['First_Date_Month'] = df['Date'] + pd.offsets.MonthBegin(1)

现在找到两个日期之间的月份:

df['Time_Left_In_Months'] = ((df['Target'] - df['First_Date_Month'])/np.timedelta64(1, 'M')).astype(int)

输出:

        Date     Target First_Date_Month  Time_Left_In_Months
0 2019-02-10 2019-10-31       2019-03-01                    8
1 2017-03-02 2019-10-31       2017-04-01                   30
2 2018-02-03 2019-10-31       2018-03-01                   20

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫中日期时间值列中的混合日期和月份

显示月份数据时如何删除特定的日期列?

如何隐藏熊猫中日期时间对象的格式

如何检查两个日期之间的时间是否超过一定的月份数?

如何在日期时间数据框中获取多年的月份数?

日期时间 - 如何要求两位数的天数和月份数?

了解熊猫中日期时间的重采样

为什么在熊猫中日期时间被截断?

如何找到组中日期时间对象列的秒数差异?

计算熊猫数据框中日期时间间隔之间的实例数

计算列表中日期之间的时间

计算字典中日期之间的平均时间

如何从熊猫日期时间索引中过滤特定月份

熊猫如何忽略无法转换为日期时间以计算时间增量的列单元格

如何在导入的Excel列中使用熊猫和日期时间计算重复日期的数量?

在列类型的高图表和日期时间类型的x轴中,显示月份数据的更多滴答声

如何计算从给定日期算起的月份剩余天数

检查日期列中是否缺少月份数据

计算熊猫日期时间列的累积持续时间

时刻:如何获取日期范围的月份数组

如何在excel中交换日期和月份数字

一种简单的方法来计算Python列中日期之间的时间间隔

如何计算 BigQuery 中日期之间的差异

如何计算R中日期的频率?

如何加快Mysql中日期时间的查询

如何在Python中使用多列计算CSV文件中日期之间的平均时间?

如何检查日期列在特定月份的大熊猫中?

熊猫数据框分组日期时间月份

改善熊猫中日期时间比较的性能