【问题标题】:Shifting Rows in Matrix by Variable Amounts按可变数量移动矩阵中的行
【发布时间】:2019-06-22 06:25:48
【问题描述】:

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

我的数据样本:

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

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

【问题讨论】:

  • 您能否将一些示例数据以文本形式发布,预期结果也以文本形式发布?

标签: python pandas numpy dataframe time-series


【解决方案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

df1中的``系列中减去df而不改变列顺序

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

【讨论】:

    猜你喜欢
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    相关资源
    最近更新 更多