Python 如何在大熊猫的同一艘船上安装连续安装的最古老部分?

Python 如何在大熊猫的同一艘船上安装连续安装的最古老部分?,python,pandas,Python,Pandas,我有一个熊猫数据帧,部分安装在船上。 我想为每艘船/零件保留最早的连续安装(见日期)。我该怎么做 输入: | date | boat | part |-------|------|----- | 01/01 | A | C <-- Keep this row because this is first install of C in A | 01/02 | A | C | 01/03 | A | C | 01/04 | A | D <-- Keep th

我有一个熊猫
数据帧
,部分安装在船上。 我想为每艘
/
零件
保留最早的连续安装(见
日期
)。我该怎么做

输入:

| date  | boat | part
|-------|------|-----
| 01/01 | A    | C <-- Keep this row because this is first install of C in A
| 01/02 | A    | C  
| 01/03 | A    | C
| 01/04 | A    | D <-- Keep this row because this is first install of D in A
| 01/05 | A    | D
| 01/06 | A    | C <-- Keep this row because this is first install of C in A after D
| 01/07 | A    | C
| 01/08 | A    | C
| 01/09 | B    | C <-- Keep this row because this is first install of C in B
| 01/10 | B    | C
| date  | boat | part
|-------|------|-----
| 01/01 | A    | C
| 01/04 | A    | D
| 01/06 | A    | C
| 01/09 | B    | C
使用:

详细信息

首先将连续值与和
shift
进行比较:

print (df[['boat','part']].ne(df[['boat','part']].shift()))
    boat   part
0   True   True
1  False  False
2  False  False
3  False   True
4  False  False
5  False   True
6  False  False
7  False  False
8   True  False
9  False  False
然后通过以下方法测试每行至少一个
True


我如何添加一个条件,即某个列必须为
True
?基本上,对于列
X
True
的行,如何在同一条船上获得连续安装的最旧部分安装?@dunkubok-你认为更改
df['boat','part']].ne(df['boat','part'].shift()).any(axis=1)
df['boat','part'].ne(df['boat','part'].shift()).any(axis=1);(df['col']==1)
用于链接到
的df[['boat','part']].ne(df['boat','part'].shift()).any(axis=1)
的df['boat','part'].ne(df['boat','part']].shift()).any(axis=1)和(df['col']=1)
用于链接到
.ne
。它应该只在具有
col==False
@dunkubok的情况下执行
.ne
——您能更具体一点吗?也许最好的方法是创建一个新的问题,并导出输出。
print (df[['boat','part']].ne(df[['boat','part']].shift()))
    boat   part
0   True   True
1  False  False
2  False  False
3  False   True
4  False  False
5  False   True
6  False  False
7  False  False
8   True  False
9  False  False
print (df[['boat','part']].ne(df[['boat','part']].shift()).any(axis=1))
0     True
1    False
2    False
3     True
4    False
5     True
6    False
7    False
8     True
9    False
dtype: bool