Заменить повторяющиеся значения по убыванию - PullRequest
0 голосов
/ 11 июня 2019

У меня есть панды df, как показано ниже.(форма: 100 * 7)

Я хотел бы заменить дублирующиеся значения, сохранив первый дублирующий элемент и заменив следующие дублирующиеся значения действительными числами: просто случайные значения, но они должны быть в порядке убывания / уменьшенияorder.

Например, 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 Ответ

3 голосов
/ 11 июня 2019

Учитывая, что значения в 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
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...