python - 如何标记熊猫数据框中的最后一个重复元素
问题描述
如您所知,有一种方法.duplicated
可以在列中查找重复项,但我需要的是知道我的数据按日期排序的最后一个重复元素。
Last_dup
这是该列的预期结果Policy_id
:
Id Policy_id Start_Date Last_dup
0 b123 2019/02/24 0
1 b123 2019/03/24 0
2 b123 2019/04/24 1
3 c123 2018/09/01 0
4 c123 2018/10/01 1
5 d123 2017/02/24 0
6 d123 2017/03/24 1
提前感谢您的帮助和支持!
解决方案
使用Series.duplicated
orDataFrame.duplicated
指定列和参数keep='last'
,然后将反转掩码转换为整数以True/False
进行1/0
映射或使用numpy.where
:
df['Last_dup1'] = (~df['Policy_id'].duplicated(keep='last')).astype(int)
df['Last_dup1'] = np.where(df['Policy_id'].duplicated(keep='last'), 0, 1)
或者:
df['Last_dup1'] = (~df.duplicated(subset=['Policy_id'], keep='last')).astype(int)
df['Last_dup1'] = np.where(df.duplicated(subset=['Policy_id'], keep='last'), 0, 1)
print (df)
Id Policy_id Start_Date Last_dup Last_dup1
0 0 b123 2019/02/24 0 0
1 1 b123 2019/03/24 0 0
2 2 b123 2019/04/24 1 1
3 3 c123 2018/09/01 0 0
4 4 c123 2018/10/01 1 1
5 5 d123 2017/02/24 0 0
6 6 d123 2017/03/24 1 1
推荐阅读
- scala - 如何将 spark scala map 字段合并到 BQ?
- python - Django 正在高效地从数据库中渲染模板
- html - 背景图像未显示,但同一类或元素显示其他样式
- javascript - 根据另一个对象的模式创建一个空对象
- mysql - 根据存储在其他数据库中的已知变量拆分一行
- javascript - 访问对象内的数据对象属性
- python - 无法在 Python 程序中连接到 MySQL
- laravel - 如何在 html 页面中显示变量 ( key ) 的值?
- r - 未使用参数的 R 错误消息 (writexl)
- python - 动态更新选项菜单 tkinter