【问题标题】:Get the average number of days between two dates in Python获取Python中两个日期之间的平均天数
【发布时间】:2021-12-05 00:41:31
【问题描述】:

我有一个数据框,其中一列中只有日期。 我的目标是计算每个日期之间的天数,以获得两个日期之间的平均天数(每个日期对应一个操作)。

我试着做这样的事情:

for i in range(len(df)):
    if i != 0:
        d0 = df.iloc[[i-1,1]]
        d1 = df.iloc[[i,1]]
        L.append((d1 - d0).days)

但收到错误消息:'unsupported operand type(s) for -:'str' and 'str''

【问题讨论】:

  • 日期列的数据类型是什么?它是一个实际的日期,还是只是一个看起来像日期的字符串?

标签: python pandas


【解决方案1】:

如果格式正确,您可以从另一个日期中减去一个日期。也许是一个以秒为单位的时间戳,也许是一个合适的 datetime 对象。您可能已经注意到,您不能减去字符串。

如果日期是 ISO 格式,最简单,在减法之前这样做:

from datetime import datetime
d0 = datetime.fromisoformat(d0)
d1 = datetime.fromisoformat(d1)

结果将采用datetime.timedelta 格式,带有.total_seconds() 方法甚至.days 属性,所以你会得到这样的日子:

difference_in_days = (d1 - d0).days

如果它不是 ISO 字符串,请查看以下问题: Converting string into datetime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 2017-12-27
    • 1970-01-01
    相关资源
    最近更新 更多