当前位置:   article > 正文

pandas 笔记:shift_python pandas shift

python pandas shift

用于将数据系列或数据框中的数据按指定的位置移动。这对于某些时间序列分析特别有用,例如计算数据的变化量或滞后值

1 对Series/DataFrame数据进行移动

1.0 原始数据

  1. import pandas as pd
  2. import numpy as np
  3. df1=pd.DataFrame(np.arange(12).reshape(3,4),
  4. columns=['a','b','c','d'],
  5. index=['A','B','C'])
  6. df1
  7. '''
  8. a b c d
  9. A 0 1 2 3
  10. B 4 5 6 7
  11. C 8 9 10 11
  12. '''

1.1  正数:向下移动,负数:向上移动

  1. df1.shift(1)
  2. '''
  3. a b c d
  4. A NaN NaN NaN NaN
  5. B 0.0 1.0 2.0 3.0
  6. C 4.0 5.0 6.0 7.0
  7. '''
  8. df1.shift(-2)
  9. '''
  10. a b c d
  11. A 8.0 9.0 10.011.0
  12. B NaN NaN NaN NaN
  13. C NaN NaN NaN NaN
  14. '''

1.2 axis 沿着那个轴shift(默认0)

  1. df1.shift(-2,axis=1)
  2. '''
  3. a b c d
  4. A 2 3 NaN NaN
  5. B 6 7 NaN NaN
  6. C 10 11 NaN NaN
  7. '''

1.3 fill_value (NaN 用什么填充)

  1. df1.shift(-2,
  2. axis=1,
  3. fill_value='-1')
  4. '''
  5. a b c d
  6. A 2 3 -1 -1
  7. B 6 7 -1 -1
  8. C 10 11 -1 -1
  9. '''

1.4 对单列进行shift

  1. df1['a'].shift(-2,
  2. fill_value='-1')
  3. '''
  4. A 8
  5. B -1
  6. C -1
  7. Name: a, dtype: object
  8. '''

2 DateTime shift

  1. import pandas as pd
  2. df=pd.date_range(start='2023-09-13 10:00:00',
  3. end='2023-09-13 18:00:00',
  4. freq='1h')
  5. df
  6. '''
  7. DatetimeIndex(['2023-09-13 10:00:00', '2023-09-13 11:00:00',
  8. '2023-09-13 12:00:00', '2023-09-13 13:00:00',
  9. '2023-09-13 14:00:00', '2023-09-13 15:00:00',
  10. '2023-09-13 16:00:00', '2023-09-13 17:00:00',
  11. '2023-09-13 18:00:00'],
  12. dtype='datetime64[ns]', freq='H')
  13. '''

默认按照dataframe的frequency 进行shift

  1. df.shift(2,)
  2. '''
  3. DatetimeIndex(['2023-09-13 12:00:00', '2023-09-13 13:00:00',
  4. '2023-09-13 14:00:00', '2023-09-13 15:00:00',
  5. '2023-09-13 16:00:00', '2023-09-13 17:00:00',
  6. '2023-09-13 18:00:00', '2023-09-13 19:00:00',
  7. '2023-09-13 20:00:00'],
  8. dtype='datetime64[ns]', freq='H')
  9. '''

freq 手动指定frequency

  1. df.shift(2,freq='1min')
  2. '''
  3. DatetimeIndex(['2023-09-13 10:02:00', '2023-09-13 11:02:00',
  4. '2023-09-13 12:02:00', '2023-09-13 13:02:00',
  5. '2023-09-13 14:02:00', '2023-09-13 15:02:00',
  6. '2023-09-13 16:02:00', '2023-09-13 17:02:00',
  7. '2023-09-13 18:02:00'],
  8. dtype='datetime64[ns]', freq='H')
  9. '''

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/945398
推荐阅读
相关标签
  

闽ICP备14008679号