按可变数量在矩阵中移动行

时间:2019-01-29 07:20:13

标签: python pandas numpy dataframe time-series

我有一个时间序列数据帧(Pandas)。列是时间步长,我想在保持列顺序的同时将每行移动可变的量。

我的数据示例: enter image description here

对于数据框中的每个索引,我都有一个充满移位的数据集。这是数据集的示例,其中包含每个索引所需的移位。

enter image description here

在保持相对列的位置的同时,将每一行移动给定变量的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

IIUC,因为我没有数据,所以创建了一个示例:

df = pd.DataFrame(np.random.randint(0,100,size=(5, 4)), columns=list('ABCD'),index=[1,2,3,4,5])
print(df)

    A   B   C   D
1  27  78  89  75
2  24  36  33  97
3  27  45  85  31
4  82  48  93  31
5  19  42   2  85

df1 = pd.DataFrame(np.random.randint(0,100,size=(6,1)),columns=['to_shift'])
print(df1)

   to_shift
0        37
1        96
2        23
3        48
4         8
5        17

从``df中的序列中减去df1而不改组列顺序

df_new=df.sub(df1.to_shift,axis=0).dropna(how='all')
print(df_new)

     A     B     C     D
1 -69.0 -18.0  -7.0 -21.0
2   1.0  13.0  10.0  74.0
3 -21.0  -3.0  37.0 -17.0
4  74.0  40.0  85.0  23.0
5   2.0  25.0 -15.0  68.0