python - 有没有办法只返回在另一列中有 True 和 False 的列中的名称?
问题描述
我有一个这样的数据框:
dataframee = pd.DataFrame({'names': ['ana','alex','paul','ana','alex','paul'], 'some_column': [False, False, False,True,True,False]})
我只想返回名称 ana 和 alex,因为它们有 True 和 False。
我正在做这样的事情:
list_name = []
for i in dataframe['names']:
if dataframe[dataframe['names'] == i].some_column.nunique() == 2:
list_name.append(i)
list(set(list_name))
有没有更简单、更有效的方法?或者只返回“some_column”中名称为 True 和 False 的行?
解决方案
我们能做的
g=df.groupby('names').some_column
s=g.sum().eq(1)&g.count().eq(2)
names
alex True
ana True
paul False
Name: some_column, dtype: bool
s.index[s].tolist()
推荐阅读
- python - Pandas 使用数据框名称替换第二个数据框中任何位置的数据,并带有 id
- python-3.x - Python:将文件树复制到文本文件
- mysql-workbench - 无法使用本地套接字/管道 MAMP 连接到 MySQL
- ios - 允许用户在 React Native 中更改 App 图标
- mysql - MySQL:在有限范围内删除单个选定行
- vagrant - 无法在 PATH 模式 040777 中解析不安全的世界可写目录 /mnt/c
- amazon-web-services - ec2 上没有更多磁盘空间
- mongodb - 在 MongoDB 中的记录中取消嵌套值
- bash - 使用 awk 或 bash 将字符串附加到列中单元格的所有元素
- ios - FIRUser.uid 更改为某些内容,并且在 swift 5 中不起作用