gpt4 book ai didi

python - 寻找一种更快的方法来替换 pandas DatetimeIndex 中的年份

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

我有一个包含大约 2000 万行的 DataFrame 和一个 DatetimeIndex。有不同年份的数据,我想通过更改时间戳将它们全部分配到同一年。下面的语句实现了这一点,但比我想要的要慢一点(两位数秒)。

new_index = [ts.replace(year=2014) for ts in df.index]
df.index = new_index

数据不是均匀分布的,所以我不能轻易地生成新的索引。有没有更好的办法?

最佳答案

尝试:

%%time
new_index = pd.to_datetime({
'year': 2014,
'month': df.index.month,
'day': df.index.day})

CPU times: user 333 ms, sys: 34.4 ms, total: 367 ms
Wall time: 346 ms

与原版相比:

%%time
new_index = [ts.replace(year=2014) for ts in df.index]

CPU times: user 6.97 s, sys: 115 ms, total: 7.08 s
Wall time: 7.1 s

时间是针对 100 万数据集,但我预计 2000 万数据集也会有类似的改进。

此外,当然,如果要保留小时/分钟/秒,也应将它们添加到 to_datetime

关于python - 寻找一种更快的方法来替换 pandas DatetimeIndex 中的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63657368/

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