首页 > 解决方案 > 计数或标记数据框列达到条件的次数

问题描述

我想要做的是添加一个新列,如果在单独的列中满足条件,则基本上“标记” - 如果下一个值<上一个值然后标记它。为简单起见,我们选择 1(是)和 0(否)。下面的例子:

DF_原件:

Col1 
  4
  5
  3
  9
  12
  11
  15

DF_desired:

Col1      Col_flag
  4           0
  5           0
  3           1
  9           0
  12          0
  11          1
  15          0

谢谢您的帮助。

标签: pythonpandasdataframe

解决方案


你可以用np.where()and做到这一点diff()

df = pd.DataFrame({'col1':[4,5,3,9,12,11,15]})
df['Col2'] = np.where(df['col1'].diff() < 0,1,0)

这将输出:

   col1  Col2
0     4     0
1     5     0
2     3     1
3     9     0
4    12     0
5    11     1
6    15     0

推荐阅读