【发布时间】:2019-09-27 22:35:59
【问题描述】:
我正在处理一个非常大的数据框。下面是一个小样本:
import pandas as pd
df = pd.DataFrame({'nodes': ['A', 'B', 'C'],
'dept': ['20:00', '02:00', '21:00'],
'arrv': ['20:00', '17:00', '21:00'],
'dept_offset_day': [0, 1, 0],
'arrv_offset_day': [0, 1, 0],
'stop_num':[0,1,2]})
print(df)
nodes dept arrv dept_offset_day arrv_offset_day
0 A 20:00 20:00 0 0
1 B 02:00 17:00 1 1
2 C 21:00 21:00 0 0
我正在尝试 1) 通过考虑日期偏移量将日期添加到开始时间和结束时间。 2)将节点列分为两个节点开始和节点结束列,即指向点。比如:
nodes_start nodes_end start_datetime end_datetime
A B 2019-5-9 20:00 2019-5-10 02:00
B C 2019-5-10 17:00 2019-5-10 21:00
我尝试使用 pd.offsets.Day() 并循环遍历每一行,但它使执行时间非常慢并且我得到错误的日期。感谢您的帮助。
【问题讨论】:
-
第二个代码块中的日期部分是从哪里得到的?
-
只是将 now() 添加到时间。
-
你如何确定哪个节点是开始,哪个是结束?还是我们应该假设从上到下?
标签: python pandas dataframe timezone-offset