【问题标题】:Returning minutes only in new column from timestamp using Python使用 Python 仅在时间戳的新列中返回分钟
【发布时间】:2019-10-23 07:56:47
【问题描述】:

我正在尝试使用 pandas 和 datetime 库基于 Python 中的时间戳列创建一个新列。

我尝试过使用日期时间,因为我尝试过的其他方法没有给出最接近我想要的结果。看起来很简单,但我想不通。

这是迄今为止我最接近我想要的:

将日期时间导入为 dt

datetime.datetime.now().minute

datetime.datetime.now().hour

minute1 = dfclean['已收到呼叫时间'].dt.minute

minute2 = dfclean['时间车辆被调度'].dt.minute

minute3 = dfclean['Time Vehicle was en route to Scene'].dt.minute

minute4 = dfclean['到达场景的时间'].dt.minute

minute5 = dfclean['到达患者的时间'].dt.minute

minute6 = dfclean['离开场景的时间'].dt.minute

minute7 = dfclean['到达医院的时间'].dt.minute

dfclean['Mins Call Received to Vehicle Dispatched'] = minute2 - minute1

dfclean['Mins Vehicle En route to Arrival On Scene'] = minute4 - minute3

dfclean['Mins Vehicle Arrived at Patient to Departing From Scene'] = minute6 - minute5

dfclean['离开场景到到达医院的分钟数'] = minute7 - minute6

Here is the output I am talking about

但是,这会返回负值,因为它只提取分钟。因此,如果时间戳从上午 8:51 减去上午 9:00,我得到 -49。有没有办法在减法中包含小时数,所以它不考虑负数?或者也许是一种更容易的完全不同的方法?

非常感谢任何帮助!

我希望输出精确到分钟,单个数字。

【问题讨论】:

    标签: python pandas numpy datetime


    【解决方案1】:

    也许你可以使用 timedelta:

    minute1 = timedelta(minutes=dfclean['Time Call Was Received'].dt.minute)

    供参考:

    Understanding timedelta

    【讨论】:

    • 所以我尝试了这段代码,并得到“模块不可调用”,所以我从 datetime 导入 timedelta,并将其更改为“datetime.timedelta(minutes=dfclean ...”但现在得到我之前遇到的同样的错误来自“dfclean ['Time Call was...”类型是数据框中的一个系列。有没有办法解决这个错误?感谢您的帮助!
    • 抱歉,我没有说的那么清楚。您也可以在 timedelta 中输入小时数:例如:timedelta(hours=dfclean['....'].dt.hour, minutes=dfclean['....'].dt.minute )。也许它现在可以工作了。
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 2019-06-22
    • 2020-08-09
    • 1970-01-01
    • 2021-04-02
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多