python - 如何在 python pandas 中获取唯一的行值并返回布尔结果?
问题描述
我有一个数据框:
Table A B C
Round 0.2 0 1
Triangle 3 3 3
Penta 1 1 1
我希望得到如下结果:
这意味着如果 A 到 C 列的唯一值仅导致一个值,则返回 false,如果多个返回 true。总之,如果 A 列的值等于 B 且等于 C,则返回 false。
Table A B C Result
Round 0.2 0 1 True
Triangle 3 3 3 False
Penta 1 1 1 False
有人有想法吗?
解决方案
您可以将最后 3 列按最后一列与ne
( !=
) 不相等进行比较,然后每行添加DataFrame.any
检查至少一个:True
print (df)
Table A B C Result
0 Round 0.2 0 1 True
1 Triangle 3.0 3 3 False
2 Penta 1.0 1 1 False
df['Result'] = df.iloc[:, -3:].ne(df.iloc[:, -1], axis=0).any(axis=1)
print (df)
Table A B C Result
0 Round 0.2 0 1 True
1 Triangle 3.0 3 3 False
2 Penta 1.0 1 1 False
详情:
print (df.iloc[:, -3:].ne(df.iloc[:, -1], axis=0))
A B C
0 True True False
1 False False False
2 False False False
如果第一列是索引,则解决方案很简单,并且可以将所有列与任何列进行比较:
df['Result'] = df.ne(df.iloc[:, -1], axis=0).any(axis=1)
print (df)
A B C Result
Table
Round 0.2 0 1 True
Triangle 3.0 3 3 False
Penta 1.0 1 1 False
推荐阅读
- awk - 通过 bash AWK 将列十进制转换为二进制
- java - 用于 USER 而不是 BOT 的电报 API
- reporting-services - SSRS 报告中的绝对值
- java - 无法访问其他类中的方法(Android Studio)
- python - 如何删除“www”。从原始 URL 通过 [urllib] 在 python 中解析?
- visual-studio - 如何下载 Visual Studio 社区 16.10.2 或任何其他旧版本
- javascript - jquery.jeditable.js 选项,用于通过单击从 true 切换到 false 并发送到 php 文件
- python-3.x - 将列表的长度与列表理解 Python 进行比较
- c# - 在 Docker 容器中运行 .Net 5 API 时无法连接到 Postgres
- sql - 如何在 BigQuery 中对数周进行滚动求和?