首页 > 解决方案 > 如何根据聚类结果计算级别值之间的差异?

问题描述

假设我们有一个包含两列的 pandas 数据框:

Col1  Col2         
  0    15         
  0    20         
  0    30         
  1    40         
  1    45         
  0    50     
  0    55         
  2    60         
  2    70

我需要根据 col2 在其他数据框或数组中计算这个:

Col1  Col2     
 0     30-15=15    
 1     45-40=5     
 0     55-50=5     
 2     70-60=10

最终结果:

Col1  Col2     
  0    15    
  1    5     
  0    5     
  2    10

谢谢

标签: pythonpandasnumpy

解决方案


使用np.ptp(峰到峰)

df.groupby(df.Col1.ne(df.Col1.shift()).cumsum()).Col2.apply(np.ptp)

Col1  Col2     
  0    15    
  1    5     
  0    5     
  2    10

推荐阅读