gpt4 book ai didi

Python(pandas)将多个日期时间快速映射到其系列索引?

转载 作者:行者123 更新时间:2023-12-01 04:13:50 26 4
gpt4 key购买 nike

我有一个大型 Pandas 数据框,其中一列是已知时期(2013 年)的(无序)日期时间。我需要一种有效的方法将这些日期时间转换为索引,其中每个索引 = 自 start_time ('2013-1-1 00)' 以来的 # 小时。 有重复的时间,应该映射到重复的索引。

显然,这可以通过使用 timedelta 通过循环一次完成。也可以使用 Pandas Series 通过循环来完成(请参阅以下代码片段,它生成自 start_time 以来所有日期时间的有序序列):

nhours = 365*24
time_series = Series(range(nhours), index=pd.date_range('2013-1-1', periods=nhours, freq='H'))

运行此代码片段后,可以在循环中使用 .index 或 .get_loc 方法获取索引。

** 但是,有没有一种快速(非循环?)的方法来获取一列任意日期时间并找到它们各自的索引? **

例如,输入以下列日期时间:

2013-01-01 11:00:00
2013-01-01 11:00:00
2013-01-01 00:00:00
2013-12-30 18:00:00

应输出以下索引:[11, 11, 0, 8730]

最佳答案

loc 可以使用标签列表或数组来查找:

>>> print time_series.loc[[pd.Timestamp('20130101 11:00'), pd.Timestamp('20130101 11:00'), pd.Timestamp('20130101'), pd.Timestamp('20131230 18:00')]]
2013-01-01 11:00:00 11
2013-01-01 11:00:00 11
2013-01-01 00:00:00 0
2013-12-30 18:00:00 8730
dtype: int64

关于Python(pandas)将多个日期时间快速映射到其系列索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556967/

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