gpt4 book ai didi

python - 修改具有日期偏移量的数据框

转载 作者:行者123 更新时间:2023-11-28 18:57:54 24 4
gpt4 key购买 nike

我正在处理一个非常大的数据框。下面是一个小样本:

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 列,即点对点。像这样的东西:

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() 并循环遍历每一行,但这会使执行时间非常慢,而且我得到了错误的日期。感谢您的帮助。

最佳答案

尝试使用新列构建一个新的数据框(实际上是复制的列 :D):

df2 = pd.DataFrame()
df2['nodes_start'] = df['nodes'][:2]
df2['nodes_end'] = df['nodes'][-2:].reset_index(drop=True)
df2['start_datetime'] = pd.to_datetime(df['arrv'][:2])
df2['end_datetime'] = pd.to_datetime(df['dept'][-2:].reset_index(drop=True))
df2['start_datetime'] = [df2['start_datetime'][0] - pd.Timedelta(days=1)] + [df2['start_datetime'][1]]
print(df2)

输出:

  nodes_start nodes_end      start_datetime        end_datetime
0 A B 2019-05-09 20:00:00 2019-05-10 02:00:00
1 B C 2019-05-10 17:00:00 2019-05-10 21:00:00

关于python - 修改具有日期偏移量的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56070461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com