如何将每月的熊猫系列重新索引为分钟,在该月的结果天数中的每一天中都有与月份对应的值?



我有一个这种形式的熊猫系列:

1950-01-31      2.0
1950-02-28      2.0
1950-03-31      1.0
1950-04-30      2.0
1950-05-31      0.0
1950-06-30      0.0

我想将通行证从每月重新索引到分钟数,如下所示:

1950-01-31 00:00:00     2.0
1950-01-31 00:01:00     2.0
1950-01-31 00:02:00     2.0
1950-02-28 00:03:00     2.0
.
.
.

1950-06-30 00:00.00     0.0
1950-06-30 00:01.00     0.0
1950-06-30 00:02.00     0.0
1950-06-30 00:03.00     0.0
.
.

例如,我的意思是,在这种情况下,对应于 1950-01-31 的值为 2.0,它会扩展到该月的每一分钟并连续

嗨,谢谢,我遇到了麻烦,我严格要求该值位于所属的月份,例如,如果我使用 s.resample('T'(.ffill(( 我在我的结果系列中有这个:

2018-03-31 23:24:00    2.0
2018-03-31 23:25:00    2.0
2018-03-31 23:26:00    2.0
2018-03-31 23:27:00    2.0
... 
2018-04-01 23:31:00    2.0
2018-04-01 23:32:00    2.0
2018-04-01 23:33:00    2.0
2018-04-01 23:34:00    2.0

该月 2018-04 的每一分钟都必须是 0.0,而不是我使用 s.resample('T'(.ffill(( 有 2.0。 在需要时恢复一个系列,将每月值从该月的第一分钟到最后一分钟在各个月份的分钟数。 (对不起我的英语(

IIUC:

设置

s = pd.Series([2, 2, 1, 2, 0, 0], pd.date_range('1950-01-31', periods=6, freq='M'))

广播和reindex

看起来您只捕获了前 4 分钟。 因此,我创建了一个范围从 0 到 3 分钟的时间增量数组。

d = np.arange(4).astype('timedelta64[m]')
s.reindex((s.index.values[:, None] + d).ravel(), method='ffill')
1950-01-31 00:00:00    2
1950-01-31 00:01:00    2
1950-01-31 00:02:00    2
1950-01-31 00:03:00    2
1950-02-28 00:00:00    2
1950-02-28 00:01:00    2
1950-02-28 00:02:00    2
1950-02-28 00:03:00    2
1950-03-31 00:00:00    1
1950-03-31 00:01:00    1
1950-03-31 00:02:00    1
1950-03-31 00:03:00    1
1950-04-30 00:00:00    2
1950-04-30 00:01:00    2
1950-04-30 00:02:00    2
1950-04-30 00:03:00    2
1950-05-31 00:00:00    0
1950-05-31 00:01:00    0
1950-05-31 00:02:00    0
1950-05-31 00:03:00    0
1950-06-30 00:00:00    0
1950-06-30 00:01:00    0
1950-06-30 00:02:00    0
1950-06-30 00:03:00    0
dtype: int64

要捕获每一分钟,请按照建议@Wen操作

s.resample('T').ffill()

相关内容

最新更新