有人能告诉我如何做到这一点吗?
原始数据格式如下:
value
2021-4-22 1
2021-4-23 22
2021-4-26 31
2021-4-27 42
2021-10-11 12
2021-10-13 15
2021-10-15 54
2021-10-16 65
2022-02-21 27
2022-02-22 23
2022-02-23 78
2022-02-24 56例如,我希望将数据转换为1行,每4行作为一个组:
value
2021-4-22 nan
2021-4-23 1
2021-4-26 22
2021-4-27 31
2021-10-11 nan
2021-10-13 12
2021-10-15 15
2021-10-16 54
2022-02-21 nan
2022-02-22 27
2022-02-23 23
2022-02-24 78发布于 2022-07-29 07:41:35
看来你每个月都想换班。使用索引创建一个月期间,然后是groupby.shift
group = pd.to_datetime(df.index).to_period('M')
out = df.groupby(group).shift()如果您真的想使用固定数字(N=4):
N=4
group = np.arange(len(df))//N
out = df.groupby(group).shift()产出:
value
2021-4-22 NaN
2021-4-23 1.0
2021-4-26 22.0
2021-4-27 31.0
2021-10-11 NaN
2021-10-13 12.0
2021-10-15 15.0
2021-10-16 54.0
2022-02-21 NaN
2022-02-22 27.0
2022-02-23 23.0
2022-02-24 78.0https://stackoverflow.com/questions/73163180
复制相似问题