我有一个像下面的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 ............
.
.
任何帮助将不胜感激。
答案 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
...