gpt4 book ai didi

python - 如何从 pandas 中的日期和时间列添加时间索引

转载 作者:太空宇宙 更新时间:2023-11-03 18:10:26 25 4
gpt4 key购买 nike

我有一个 OHLC 数据框,如下所示:

trade_date trade_time  open_price  high_price  low_price  close_price  volumn   19911223      15:00       27.70        27.9      27.60        27.80    1270   19911224      15:00       27.90        29.3      27.00        29.05    1050   19911225      15:00       29.15        30.0      29.10        29.30    2269   19911226      15:00       29.30        29.3      28.00        28.00    1918   19911227      15:00       28.00        28.5      28.00        28.45    2105   19911228      15:00       28.40        29.3      28.40        29.25    1116   19911230      15:00       29.30        29.4      28.80        28.80    1059   ........

如何将 trade_date 和 trade_time 列组合成时间序列索引?我查看了类似的问题,它们都是基于 read_csv....

最佳答案

这是一个完全矢量化的解决方案。

将 trade_date 列转换为 datetime64[ns] dtype(可以是 int64object dtype a-priori)。将 trade_time 转换为 timedelta64[ns] dtype。您需要通过添加秒组件来提示时间为 hh:mm。

将日期时间和时间增量相加得出日期时间。

In [5]: pd.to_datetime(df['trade_date'],format='%Y%m%d') + pd.to_timedelta(df['trade_time'] + ':00')
Out[5]:
0 1991-12-23 15:00:00
1 1991-12-24 15:00:00
2 1991-12-25 15:00:00
3 1991-12-26 15:00:00
4 1991-12-27 15:00:00
5 1991-12-28 15:00:00
6 1991-12-30 15:00:00
dtype: datetime64[ns]

然后可以直接设置索引

In [6]: df.index = pd.to_datetime(df['trade_date'],format='%Y%m%d') + pd.to_timedelta(df['trade_time'] + ':00')

In [7]: df
Out[7]:
trade_date trade_time open_price high_price low_price close_price volumn
1991-12-23 15:00:00 19911223 15:00 27.70 27.9 27.6 27.80 1270
1991-12-24 15:00:00 19911224 15:00 27.90 29.3 27.0 29.05 1050
1991-12-25 15:00:00 19911225 15:00 29.15 30.0 29.1 29.30 2269
1991-12-26 15:00:00 19911226 15:00 29.30 29.3 28.0 28.00 1918
1991-12-27 15:00:00 19911227 15:00 28.00 28.5 28.0 28.45 2105
1991-12-28 15:00:00 19911228 15:00 28.40 29.3 28.4 29.25 1116
1991-12-30 15:00:00 19911230 15:00 29.30 29.4 28.8 28.80 1059

关于python - 如何从 pandas 中的日期和时间列添加时间索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096174/

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