Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 时间转换和运行时间_Python_Pandas_Numpy_Time_Jupyter - Fatal编程技术网

Python 时间转换和运行时间

Python 时间转换和运行时间,python,pandas,numpy,time,jupyter,Python,Pandas,Numpy,Time,Jupyter,我有一个包含列的数据框: 出发时间的['A'](列为整数ex:700或403,即7:00和4:03) 经过时间的['B'](列为整数ex:70或656,即70分钟和656分钟) 到达时间的['C'](列为整数:1810和355,即18:10和03:55) 我需要找到一种方法来开发一个新列['D'],该列具有一个布尔值,如果到达时间在第二天,则返回True;如果到达时间在同一天,则返回False。 我想访问列A的-2索引,将小时转换为分钟,然后添加剩余的分钟来规范化值,但不确定如何实现这一点,或者

我有一个包含列的数据框:

出发时间的['A'](列为整数ex:700或403,即7:00和4:03)

经过时间的['B'](列为整数ex:70或656,即70分钟和656分钟)

到达时间的['C'](列为整数:1810和355,即18:10和03:55)

我需要找到一种方法来开发一个新列['D'],该列具有一个布尔值,如果到达时间在第二天,则返回True;如果到达时间在同一天,则返回False。


我想访问列A的-2索引,将小时转换为分钟,然后添加剩余的分钟来规范化值,但不确定如何实现这一点,或者是否有更简单的方法来找到这一点。这背后的想法是从一天开始的那一刻起计算总分钟数,如果超过一天的总分钟数,那么我会有我的答案,但不确定这是否有效。

与您概述的方法类似,您可以通过将列
a
中的整数转换为24小时日期时间来完成任务(从
1900-01-01
)开始,将
B
列中的整数分钟数作为时间增量相加,然后检查结果是否仍在当月的第1天。作为一项完整性检查,我确保最后一行返回
True

您可以在不创建新列的情况下组合这些步骤,但我认为这样代码更具可读性

import numpy as np
import pandas as pd
import datetime as dt

df = pd.DataFrame({
    'A':[700,403,2359],
    'B':[70,656,2],
    'C':[810,1059,1]
})

# convert to string, add leading zeros, then convert column A to datetime
df['arrival'] = pd.to_datetime(df['A'].astype(str).str.zfill(4), format='%H%M') + pd.to_timedelta(df['B'],'m')

# check if you are on day 1 of the month still
df['D'] = np.where(df.arrival.dt.day > 1, True, False)
输出:

      A    B     C             arrival      D
0   700   70   810 1900-01-01 08:10:00  False
1   403  656  1059 1900-01-01 14:59:00  False
2  2359    2     1 1900-01-02 00:01:00   True

101
->10:10或1:10?是否到处都使用24小时格式?请向我们提供数据集样本以帮助您@anon01假设24小时无处不在,是的-没有“am”或“pm”"信息。@Cadone不确定如何添加数据集样本,但我会尝试。值得一提的是,它是一个包含35列的.txt文件。为了帮助我计算,这些列a、B和C被更改为int astype,但每列都有相同数量的行,每列大约100万行。我必须创建一个新列,在每行中迭代并返回T后悔超过第二天的时间(A表示出发时间,B表示经过的时间,C表示到达时间),但没有日期信息,只有时间。谢谢你,德里克。我知道我没有提到这个问题,但没有“日期”信息。有必要添加日期时间并完成所有这些吗?另外,您创建了一个字典,其中每个列都有值,但在实际数据集中,我有数百万行,这似乎与大括号{}之间的df['a]:df['a']不起作用。我知道没有日期信息,但datetime默认为1900-01-01,这实际上很有用,因为这样你就可以知道你什么时候到了第二天。另外,我创建的
df
DataFrame纯粹是一个示例。你可以在数据框上通过该点来编辑代码。我不知道这是否是最有效的方法,因为可能会有错误技巧,使它更快,但让我知道,如果它的工作。