为了账号安全,请及时绑定邮箱和手机立即绑定

pandas:快速将时间戳索引转换为 ISO 周

pandas:快速将时间戳索引转换为 ISO 周

小怪兽爱吃肉 2021-12-26 10:46:55
我有一个函数,它返回Series由一组值组成的 Pandas实例的索引pd.Timestamp值作为 ISO 周值。import numpy as npimport pandas as pdtimestamps = [pd.Timestamp('2014-01-01'), pd.Timestamp('2014-02-01'), pd.Timestamp('2014-02-01')]quantities = [1.0, 1.0, 1.0]series = pd.Series(quantities, index=timestamps)def timestamps_iso() -> np.array:    timestamps_iso = []    for timestamp in series.index:        timestamp_iso = timestamp.isocalendar()[1]        if timestamp_iso == 53: # fix ISO week number 53.            timestamp_iso = np.random.choice([52, 1])        timestamps_iso.append(timestamp_iso)    return np.array(timestamps_iso)请问这可以做得更快,还是以更熊猫的风格完成?索引大的时候运行需要很多时间。谢谢你的帮助。
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

你的问题说的是月值,但代码说的是周值。我假设您正在寻找周值。您可以使用以下命令访问日期时间系列的周数.week:


In [1]: timestamps = [pd.Timestamp('2014-01-01'), pd.Timestamp('2014-02-01'), pd.Timestamp('2014-02-01')] 

   ...: quantities = [1.0, 1.0, 1.0] 

   ...: series = pd.Series(quantities, index=timestamps)                                                                                                                                                                                             


In [2]: series.index.week                                                                                                                                                                                                                            

Out[2]: Int64Index([1, 5, 5], dtype='int64')


查看完整回答
反对 回复 2021-12-26
  • 1 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信