Pandas 如何在一列中找到具有不同值的第一行?

Pandas 如何在一列中找到具有不同值的第一行?,pandas,Pandas,我有一个熊猫数据框,如下所示: 日期 量 2020/01/01 1. 2020/01/02 1. 2020/01/03 2. 2020/01/04 2. 2020/01/05 1. 2020/01/06 1. 看起来你想保留第一行和每一行的数量变化,对吗?所以你可以 q=df[‘数量’]。数值 sel=np.r_[True,q[1::!=q[:-1]] df=df.loc[sel,:] 我把df称为你的数据帧。这只是比较从1开始的第n个元素(即第二个元素)与第n个元素(即第n-1个元素)是否

我有一个熊猫数据框,如下所示:

日期 量 2020/01/01 1. 2020/01/02 1. 2020/01/03 2. 2020/01/04 2. 2020/01/05 1. 2020/01/06 1.
看起来你想保留第一行和每一行的数量变化,对吗?所以你可以


q=df[‘数量’]。数值
sel=np.r_[True,q[1::!=q[:-1]]
df=df.loc[sel,:]

我把df称为你的数据帧。这只是比较从1开始的第n个元素(即第二个元素)与第n个元素(即第n-1个元素)是否不同,然后选择是否不同。

似乎您希望保留第一行和数量变化的每一行,对吗?所以你可以


q=df[‘数量’]。数值
sel=np.r_[True,q[1::!=q[:-1]]
df=df.loc[sel,:]

我把df称为你的数据帧。这只是比较从1开始的第n个元素(即第二个元素)与第(n-1)个元素是否不同,然后选择是否不同。

与@BVJ大致相同,但仅使用熊猫来完成工作:

>>> df.loc[(df - df.shift(1) != 0).values]
            value
date
2020-01-01      1
2020-01-03      2
2020-01-05      1

与@BVJ大致相同,但仅使用熊猫来执行此任务:

>>> df.loc[(df - df.shift(1) != 0).values]
            value
date
2020-01-01      1
2020-01-03      2
2020-01-05      1

非常好,谢谢!!非常好,谢谢!!