如果不是,如何使列单调减少?

时间:2019-08-13 09:46:15

标签: python pandas numpy

我有一个包含一列“ A”(数值)的数据框,我能够使用以下命令检查该列是否单调递减    df ['A']。is_monotonic_decreasing

df['A']

    5
    4
    3
    6
    2

我想使列单调递减。

df['A']
   5
   4
   3
   3
   2

我要使用蛮力方法

min = df['A'][0]
for index,value in df['A'].iteritems():
   if value <= min:
      min = value
   else:
      df['A'][index] = min

1 个答案:

答案 0 :(得分:3)

在列数据上使用np.minimum.accumulate-

In [204]: df
Out[204]: 
   A
0  5
1  4
2  3
3  6
4  2

In [207]: df['A'] = np.minimum.accumulate(df['A'])

In [208]: df
Out[208]: 
   A
0  5
1  4
2  3
3  3
4  2

或使用out参数进行就地编辑-

np.minimum.accumulate(df['A'],out=df['A'].to_numpy(copy=False))