Python 将pandas系列的每n行转换为数据帧的n列
我正在尝试改变熊猫系列,如: 日期 价值 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 尝试使用fromPython 将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
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]
非常酷!完全不知道这个存在!谢谢是 啊这是一个好的。在这种情况下非常有用。