我有一个时间序列数据帧(Pandas)。列是时间步长,我想在保持列顺序的同时将每行移动可变的量。
对于数据框中的每个索引,我都有一个充满移位的数据集。这是数据集的示例,其中包含每个索引所需的移位。
在保持相对列的位置的同时,将每一行移动给定变量的最简单方法是什么?
答案 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