首页 > 解决方案 > 有没有办法只返回在另一列中有 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 的行?

标签: pythonpandasdataframe

解决方案


我们能做的

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()

推荐阅读