>我有一个函数,它返回由pd.Timestamp
值数组组成的熊猫Series
实例的索引值作为 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, 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)
请问这能做得更快,或者以更熊猫的风格完成吗?当索引很大时,运行需要很长时间。
感谢您的任何帮助。
您的问题说月值,但代码说周值。我假设您正在寻找周值。您可以使用.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')