【问题标题】:Convert timedelta of days into years将天的 timedelta 转换为年
【发布时间】:2021-10-03 21:41:30
【问题描述】:

我在数据框中有一个 timedelta64[ns] 列 (final_df['Age']),它是通过从 datetime64[ns] 变量 (today_date) 中减去 <class 'pandas._libs.tslibs.timestamps.Timestamp'> 列 (final_df["Contact Birth Date"]) 创建的。但是,当我打印数据框时,它会以天数显示时间增量,如下所示:

5511 天

我希望它只打印年数。我没有任何运气将其转换为 int 或 datetime 对象。有没有办法将“5511 天”转换为“15 年”或只是“15”?如果有帮助,我正在使用 google colab。

这是我的 today_date 和 final_df['Age'] 代码。我将日期时间导入为 dt。

today_date = pd.to_datetime(dt.date.today())
final_df['Age'] = today_date - final_df["Contact Birth Date"]

【问题讨论】:

  • 为什么不除以一年的平均天数; 5511 // 365.2425 ?或在您的代码示例中使用(today_date - final_df["Contact Birth Date"]).dt.days // 365.2425
  • 好的,第二个成功了,非常感谢!我应该考虑将整个表达式用括号括起来。

标签: python dataframe datetime google-colaboratory timedelta


【解决方案1】:

我可以帮助你,检查一下-> timedelta(days=5511).days 这会返回 int 中的天数,然后你可以将它除以 365,你将需要数年。 timedelta(days=5511).days/365.

【讨论】:

    猜你喜欢
    • 2011-01-08
    • 2017-01-24
    • 2023-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 2017-04-14
    • 2018-12-02
    • 1970-01-01
    相关资源
    最近更新 更多