在我的数据集中,我的列名是变量的,所以我不知道它的名字,也不知道它的出现顺序。 (不是不可选择的)
但是,使用0 1 2
A Pass 3
B Fail 3
0 1 2
A qq Pass
B nn Fail
函数,我可以得到仅布尔列(here)。
但是,我的列是'PASS'和'FAIL'而不是布尔值,我如何识别它们?
我得到的各种表格的例子:
Dataframe.all()
我希望我的函数在案例1中返回[1],在案例2中返回[2]。
谢谢!
编辑:git-checkout-tmp-worktree repo_path [revision]
根据评论不正确。
答案 0 :(得分:4)
IIUC:
In [75]: df1
Out[75]:
0 1 2
0 A Pass 3
1 B Fail 3
In [76]: df2
Out[76]:
0 1 2
0 A qq Pass
1 B nn Fail
In [81]: df1.columns[df1.isin(['Pass','Fail']).all()]
Out[81]: Index(['1'], dtype='object')
In [82]: df2.columns[df2.isin(['Pass','Fail']).all()]
Out[82]: Index(['2'], dtype='object')
或使用.apply()
:
In [77]: df1.columns[df1.apply(lambda x: x.isin(['Pass','Fail']).all())]
Out[77]: Index(['1'], dtype='object')
In [78]: df2.columns[df2.apply(lambda x: x.isin(['Pass','Fail']).all())]
Out[78]: Index(['2'], dtype='object')
说明:
In [79]: df1.isin(['Pass','Fail'])
Out[79]:
0 1 2
0 False True False
1 False True False
In [80]: df1.isin(['Pass','Fail']).all()
Out[80]:
0 False
1 True
2 False
dtype: bool
答案 1 :(得分:1)
>>> import pandas
>>> df = pandas.DataFrame( [ ("a","pass"), ("b","fail"), ("c","pass") ] )
>>> df
0 1
0 a pass
1 b fail
2 c pass
>>> df[1]
0 pass
1 fail
2 pass
Name: 1, dtype: object
>>> t = df[1]=="pass"
>>> t
0 True
1 False
2 True
Name: 1, dtype: bool
>>> t.all()
False
>>>