【发布时间】:2018-02-03 23:33:12
【问题描述】:
我想根据数组 nShiftsPerCol 中指定的移位次数重复移位数据帧的选择列。如何生成输出数据帧 DFO,其中包含指定了非零移位的列,并且这些列中的每一个都移位了多次。请注意,第一个班次为零或无班次。将班次编号附加到列名。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [2, 3, 4, 5, 6], 'C': [3, 4, 5, 6, 7]})
print(df)
nCols = df.shape[0]
nShiftsPerCol = np.zeros(nCols)
nShiftsPerCol[0]=3 # shift column A 3 times
nShiftsPerCol[2]=2 # shift column C 2 times
原始数据框
A B C
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
期望的输出
A_0 A_1 A_2 C_0 C_1
0 1 2 3 3 4
1 2 3 4 4 5
2 3 4 5 5 6
3 4 5 NA 6 7
4 5 NA NA 7 NA
【问题讨论】: