代码之家  ›  专栏  ›  技术社区  ›  user3104352

如何在python中使用带参考点的np.diff

  •  0
  • user3104352  · 技术社区  · 4 年前

    import pandas as pd
    data = pd.DataFrame({'date': pd.to_datetime(['1992-01-01', '1992-02-01',
                                                 '1992-03-01', '1992-04-01',
                                                 '1992-05-01']),
                          'sales': [10, 20, 30, 40, 50],
                          'price': [4302, 4323, 4199, 4397, 4159]})
    

    np.diff(data['price']) 对于 price 柱但是,我希望第一行有一个带有时间戳的参考点, 1992-01-01 我的 reference value is 4100

        date,   sales,   diff_price
    1992-01-01,  10,      4302-4100 
    1992-02-01,  20,      4323-4302
    1992-03-01,  30,      4199-4323
    1992-04-01,  40,      4397-4199
    1992-05-01,  50,      4159-4397
    

    1 回复  |  直到 4 年前
        1
  •  1
  •   Henry Ecker Super Kai - Kazuya Ito    4 年前

    我们可以使用 prepend np.diff 要在系列开始时设置参考值(4100),请执行以下操作:

    reference_value = 4100
    data['diff_price'] = np.diff(data['price'], prepend=reference_value)
    

    Series.shift fill_value 从参考(4100)中减去:

    reference_value = 4100
    data['diff_price'] = (
            data['price'] - data['price'].shift(fill_value=reference_value)
    )
    

    任何一种方法都会产生 data :

            date  sales  price  diff_price
    0 1992-01-01     10   4302         202
    1 1992-02-01     20   4323          21
    2 1992-03-01     30   4199        -124
    3 1992-04-01     40   4397         198
    4 1992-05-01     50   4159        -238
    
    推荐文章