用降序值替换重复值

时间:2019-06-11 09:36:10

标签: python pandas numpy

我有一个像下面的pandas df。 (形状:100 * 7)

我想替换重复的值, 通过保留第一个重复元素并用有效数字替换下一个重复值:只是一个随机值,但应按降序/降序排列。

例如df =

index     DTI      ..........
0         117
1         117
2         117
3         117
4         106
5         106
6         103
.          .
.          .
11        92
12        92
13        91          ........
.         .
.         .
.         .
55        33
56        33
57        28
58        28
59        27
.
.

所需的Df类似于:-

    index     DTI        ..........
    0         117
    1         115
    2         112
    3         110
    4         106
    5         104
    6         103
    .          .
    .          .
    11        92
    12        91.50            ................
    13        91
    .         .
    .         .
    .         .
    55        33
    56        30
    57        28
    58        27.5
    59        27             ............
    .
    .

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

鉴于DTI中的值是降序排列,一个选项是屏蔽duplicated值并使用Series.interpolate

df.DTI = df.DTI.mask(df.duplicated(subset='DTI')).interpolate().astype(int)

    index  DTI
0      0  117
1      1  114
2      2  111
3      3  108
4      4  106
5      5  104
6      6  103
...