【问题标题】:How to get the day difference between date-column and maximum date of same column or different column in Python?如何在Python中获取日期列和同一列或不同列的最大日期之间的天差?
【发布时间】:2020-01-04 21:19:27
【问题描述】:

我正在设置一个新列作为 Python 中的日差(在 Jupyter 笔记本上)。

我执行了列日期和当天之间的天差。另外,我通过当前日期(当前日期 -/+ 使用 timedelta 函数输入日期)执行了日期列和新创建日期之间的日期差异。

但是,每当我使用同一列和不同列的 max() 时,日差列都有 NaN 值。这对我来说没有意义,也许我错过了日期类型。当我检查所有类型时,它们似乎都是 datetime64 (我已经转换为 datetime64 )。

我认为原因是日期不够大。但是,它发生在任何特定日期,例如 max(datecolumn)+timedelta(days=i)。

t=data_signups[["date_joined"]].max()

date_joined 2019-07-18 07:47:24.963450 数据类型:datetime64[ns]

t = t + timedelta(30)

date_joined 2019-08-17 07:47:24.963450 数据类型:datetime64[ns]

data_signups['joined_to_today'] = (t - data_signups['date_joined']).dt.days

data_signups.head(2)

缩短...

  • date_joined_______________//joined_to_today________
  • 2019-05-31 10:52:06.327341 // 南
  • 2019-04-02 09:20:26.520272 // 南

但是它在当前任务中起作用,如下所示。

当前日期 = datetime.datetime.now() 打印(当前日期) 2019-09-01 17:05:48.934362

before_days=int(input("输入今天之前的天数进行分析"))

30

完成

last_day_for_analysis = Currentdate - timedelta(days=before_days)

打印(last_day_for_analysis)

2019-08-02 17:05:48.934362

data_signups['joined_to_today'] = (last_day_for_analysis - data_signups['date_joined']).dt.days

data_signups.head(2)

缩短...

  • date_joined_______________//joined_to_today________
  • 2019-05-31 10:52:06.327341 // 63
  • 2019-04-02 09:20:26.520272 // 122

我预计存在日期类型问题。但是,我无法弄清楚,因为它们都是 datetime64。列中没有 NaN 值。

感谢您的帮助。我是新手,每天都在努力学习。

【问题讨论】:

  • 你能粘贴一个输入数据和预期输出数据的sn-p吗?
  • 你好,当然。例如有一行 date_joined 列:2019-05-31 10:52:06.327341。我想要 列的最大值 (2019-07-18 07:47:24.963450) 和 行值 (2019-05-31 10:52) 之间的差值:06.327341)。结果:**48 天** 在创建的列

标签: python pandas datetime64


【解决方案1】:

虽然我忙了2天这个问题,但现在我意识到我犯了一个大错误。对不起大家。

日期不能取最大值的原因如下。

现有一个:t=data_signups[["date_joined"]].max()

必须是一个:t=data_signups["date_joined"].max()

所以它的工作原理如下。

data_signups['joined_to_today'] = (data_signups['date_joined'].max() - data_signups['date_joined']).dt.days data_signups.head(3)

不会有两个括号。如此愚蠢的错误。谢谢你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多