Python 将pandas系列的每n行转换为数据帧的n列

Python 将pandas系列的每n行转换为数据帧的n列,python,pandas,Python,Pandas,我正在尝试改变熊猫系列,如: 日期 价值 2020-01-01 -1175 2020-01-02 -475 2020-01-03 1945 2020-01-06 -1295 2020-01-07 -835 2020-01-08 -785 2020-01-09 895 2020-01-10 -665 尝试使用fromnumpy: n = 5 v = np.lib.stride_tricks.sliding_window_view(srs.values, n) df = pd.DataFrame(v

我正在尝试改变熊猫系列,如:

日期 价值 2020-01-01 -1175 2020-01-02 -475 2020-01-03 1945 2020-01-06 -1295 2020-01-07 -835 2020-01-08 -785 2020-01-09 895 2020-01-10 -665 尝试使用from
numpy

n = 5
v = np.lib.stride_tricks.sliding_window_view(srs.values, n)
df = pd.DataFrame(v, index=srs.index[:v.shape[0]])
df

               0     1     2     3    4
2020-01-01 -1175  -475  1945 -1295 -835
2020-01-02  -475  1945 -1295  -835 -785
2020-01-03  1945 -1295  -835  -785  895
2020-01-06 -1295  -835  -785   895 -665

完整的工作示例:

import numpy as np
import pandas as pd

srs = pd.Series(index=pd.DatetimeIndex(
    pd.date_range(start="2020-01-01", end="2020-1-10", freq="B")
), data=[-1175, -475, 1945, -1295, -835, -785, 895, -665])

n = 5
v = np.lib.stride_tricks.sliding_window_view(srs.values, n)
df = pd.DataFrame(v, index=srs.index[:v.shape[0]])

print(df)

pd.concat([s.shift(-n)表示范围(5)中的n)],轴=1.iloc[:4]
非常酷!完全不知道这个存在!谢谢是 啊这是一个好的。在这种情况下非常有用。