gpt4 book ai didi

python - 使用 pandas 从开始时间和持续时间(分钟)计算结束时间。标准方法错误

转载 作者:行者123 更新时间:2023-12-01 01:54:58 25 4
gpt4 key购买 nike

我有一个 pandas 数据框:

开始时间 |持续时间(分钟)

2018-03-01 16:37:09 | 155

2018-03-01 07:02:10 | 5

2018-03-01 13:07:09 | 250

2018-03-01 20:46:34 | 180

2018-03-01 07:45:49 | 5

我想要输出为

开始时间 |时间结束2018-03-01 16:37:09 | 2018-03-01 19:12:09

2018-03-01 07:02:10 | 2018-03-01 07:07:10

2018-03-01 13:07:09 | 2018-03-01 17:17:09

2018-03-01 20:46:34 | 2018-03-01 23:46:34

2018-03-01 07:45:49 | 2018-03-01 07:50:49

I am using following code and getting the output for 5-10 rows as required with an warning and when I applied same code on full data set it is showing error as **TypeError: Cannot compare type 'Timestamp' with type 'int' **

time_temp['End_time'] = pd.DatetimeIndex(time_temp['Start_time']) + pd.to_timedelta(time_temp['Duration'], unit='m')

错误:无法将类型“Timestamp”与类型“int”进行比较警告:/usr/local/lib/python3.5/dist-packages/ipykernel_launcher.py:1:设置复制警告:尝试在 DataFrame 的切片副本上设置一个值。尝试使用 .loc[row_indexer,col_indexer] = value 代替

请参阅文档中的警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy """启动 IPython 内核的入口点。

最佳答案

您需要将DatetimeIndex更改为to_datetime删除第一个错误:

Cannot compare type 'Timestamp' with type 'int' **

time_temp['End_time'] = (pd.to_datetime(time_temp['Start_time']) + 
pd.to_timedelta(time_temp['Duration'], unit='m'))
print (time_temp)
Start_time Duration End_time
0 2018-03-01 16:37:09 155 2018-03-01 19:12:09
1 2018-03-01 07:02:10 5 2018-03-01 07:07:10
2 2018-03-01 13:07:09 250 2018-03-01 17:17:09
3 2018-03-01 20:46:34 180 2018-03-01 23:46:34
4 2018-03-01 07:45:49 5 2018-03-01 07:50:49

为了避免第二个SettingWithCopyWarning显然需要copy如果进行一些过滤,因为如果您稍后修改 df 中的值,您会发现修改不会传播回原始数据 (time_temp),并且 Pandas 会发出警告:

time_temp = df[some filtering].copy()

应该还有其他问题,检查how to deal with settingwithcopywarning in pandas

关于python - 使用 pandas 从开始时间和持续时间(分钟)计算结束时间。标准方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317538/

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