微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Pandas 中重复 DatetimeIndex

如何解决如何在 Pandas 中重复 DatetimeIndex

如何创建重复日期范围?比如我想下面重复三遍

rng = pd.date_range('1/1/2011',periods=3,freq='W')

预期输出
2011-01-02
2011-01-09
2011-01-16
2011-01-02
2011-01-09
2011-01-16
2011-01-02
2011-01-09
2011-01-16

我已经尝试过:

rng = pd.concat([rng] * 3,axis=1) #这不适用于日期
rng = np.repeat(rng,3) #这样每个日期重复3次而不是列表3次?

解决方法

如果需要,我们可以使用 np.tile 并用 DatetimeIndex 包裹以保持类型:

rng = pd.DatetimeIndex(
    np.tile(pd.date_range('1/1/2011',periods=3,freq='W'),3)
)

rng

DatetimeIndex(['2011-01-02','2011-01-09','2011-01-16','2011-01-02','2011-01-16'],dtype='datetime64[ns]',freq=None)
,

用reduce试试

import functools
functools.reduce(pd.Index.append,[rng]*3)
Out[70]: 
DatetimeIndex(['2011-01-02',freq=None)
,

您可以使用 concat 函数到 PD 系列

rng = pd.date_range('1/1/2011',freq='W').to_series(index=[0,1,2])
pd.concat([rng]*3)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。