python - Python数据框计算一行中的值并将状态添加到另一行
问题描述
有一个带有值的df
name subject
mark M
mark S
mark P
mark SS
staurt M
cuban S
cuban P
如果 name 中的用户计数在 name 列中多次出现,则当前状态应为 YES ,如果仅出现一次,则状态当前状态应为 NO
name subject present status
mark M YES
mark S YES
mark P YES
mark SS YES
staurt M No
cuban S YES
cuban P YES
试过这个:
df['当前状态'] = np.where(df['name'] == df['name'].shift(), 'YES', 'NO')
解决方案
Series.duplicated
与 一起使用keep=False
:
df['present status'] = np.where(df['name'].duplicated(keep=False), 'YES', 'NO')
print (df)
name subject present status
0 mark M YES
1 mark S YES
2 mark P YES
3 mark SS YES
4 staurt M NO
5 cuban S YES
6 cuban P YES
推荐阅读
- c - 字符串连接在 C 中不起作用 (TDM-GCC-64)
- c - 将值设置为结构指针
- javascript - 文本基线的 Illustrator 脚本 (javascript)
- hyperledger-fabric - 错误:在结构 1.2 中找不到模块“结构客户端”
- javascript - 我们可以对 mocha 中的测试错误进行排序吗?
- python - cmder 上 Windows 10 中的源命令错误
- javascript - 根据子宽度创建反应动态子组件
- r - 使用 dplyr 按周过滤的功能
- python - Python 无法从“setuptools”包中导入名称
- swift - 来自镜像内省的孩子的价值不再符合协议