Использование:
cols = ['0','1','2','3','4','5']
df = df.loc[df[cols].ne('False').all(1), ['Id']]
#if False is boolean
#df = df.loc[df[cols].ne(False).all(1), ['Id']]
print (df)
Id
0 apple
2 banana
4 leeche
При необходимости проверьте все столбцы без первого:
df = df.loc[df.iloc[:, 1:].ne('False').all(1), ['Id']]
Объяснение :
Сначала выберите столбцы по столбцамИмена:
#if strings
cols = ['0','1','2','3','4','5']
#if numeric
#cols = np.arange(6)
print (df[cols])
0 1 2 3 4 5
0 True None None None None None
1 False None True None None None
2 True None None True None None
3 False None None None True None
4 None True None None None None
Затем проверьте, не равно ли False
по DataFrame.ne
:
#if boolean False
print(df[cols].ne(False))
#if string False
#print(df[cols].ne('False'))
0 1 2 3 4 5
0 True True True True True True
1 False True True True True True
2 True True True True True True
3 False True True True True True
4 True True True True True True
И проверьте, все ли True
с на строкиDataFrame.all
:
print(df[cols].ne('False').all(1))
0 True
1 False
2 True
3 False
4 True
dtype: bool
Последняя фильтрация по boolean indexing
с выбором Id
с []
для одного столбца DataFrame
:
print(df[df[cols].ne('False').all(1)])
Id 0 1 2 3 4 5
0 apple True None None None None None
2 banana True None None True None None
4 leeche None True None None None None
print(df.loc[df[cols].ne('False').all(1), ['Id']])
Id
0 apple
2 banana
4 leeche