对于下一个数据帧,我想修改每个集群最后一行的两列。
counter | 方向 | ||
---|---|---|---|
ENG | 0 | 0IN | |
ESP | 0 | 6 | 输出 |
FRA | 2 | 4 | 输出 |
发动机 | 3 | 4输出 | [/tr>
不需要使用apply
,这里我们可以使用具有布尔索引的矢量化解决方案:
m = ~df.duplicated('ID', keep='last')
df.loc[m, 'counter'] += 1
df.loc[m, 'exit_to'] = np.where(df.loc[m, 'direction'] == 'OUT', 'E', 'W')
结果
print(df)
ID counter direction exit_to
0 0 1 OUT NaN
1 0 0 IN NaN
2 0 7 OUT E
3 1 5 IN NaN
4 1 6 IN W
5 2 5 OUT E