Pandas连续值必须不同

2024-10-02 14:19:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想对数据帧的行进行子采样,使给定列中的所有连续值对都不同,如果其中两个值相同,则保留第一个。在

这里有一个例子

p = [1,1,2,1,3,3,2,4,3]
t = range(len(p))
df = pd.DataFrame({'t':t, 'p':p})

df

   p  t
0  1  0
1  1  1
2  2  2
3  1  3
4  3  4
5  3  5
6  2  6
7  4  7
8  3  8



desiredDf

   p  t
0  1  0
2  2  2
3  1  3
4  3  4
6  2  6
7  4  7
8  3  8

在desiredDf中,p列中的所有2个连续值都是不同的。在


Tags: 数据dataframedflenrange例子pddesireddf
1条回答
网友
1楼 · 发布于 2024-10-02 14:19:56

这个怎么样?在

>>> df[df.p != df.p.shift()]
   p  t
0  1  0
2  2  2
3  1  3
4  3  4
6  2  6
7  4  7
8  3  8

说明:df.p.shift()p列的条目下移一行。df.p != df.p.shift()检查{}的每个条目是否与前一个条目不同,并返回一个布尔值。在

此方法适用于具有任意数量连续项的列:例如,如果有三个相同值的运行,则只返回该运行中的第一个值。在

相关问题 更多 >