Python 熊猫:将时间戳索引快速转换为ISO周
我有一个函数,它返回熊猫系列实例的索引值,该实例由一个pd.Timestamp值数组组成,作为ISO周值Python 熊猫:将时间戳索引快速转换为ISO周,python,pandas,numpy,datetime,Python,Pandas,Numpy,Datetime,我有一个函数,它返回熊猫系列实例的索引值,该实例由一个pd.Timestamp值数组组成,作为ISO周值 import numpy as np import pandas as pd 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,
import numpy as np
import pandas as pd
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)
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)
请问,这件事能做得更快些吗,或者做得更像熊猫?当索引很大时,运行它需要很多时间
谢谢您的帮助。您的问题显示月值,但代码显示周值。我想你是在寻找周值。您可以通过以下方式访问日期时间序列上的周数:周:
谢谢-这正是我需要的。快多了。
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')