#pandas #python-2.7 #dataframe
#панды #python-2.7 #фрейм данных
Вопрос:
Я думал, что «amp;» означает И, но в приведенном ниже примере он действует как ИЛИ, потому что это должно возвращать строку с индексом = 1.
Мне нужны строки, в которых столбец «e» НЕ равен 1, А столбец «g» НЕ является «a» одновременно, но здесь это в основном ИЛИ, потому что этоне возвращает строк. Как бы вы реализовали И?
ex=pd.DataFrame([[1,2,"a"],[1,2,"b"]], columns=['e','f','g'])
ex[(ex.e!=1) amp; (ex.g!="a")]
Комментарии:
1. Вы делаете побитовое и. Вам нужны логические и:
ex[(ex.e!=1) and (ex.g!="a")]
2. не работает @TimBiegeleisen
Ответ №1:
Вы должны добавить ~
спереди, это исключит только строку с e = 1 и g = a
out = ex[~((ex.e==1) amp; (ex.g=="a"))]
print(out)
e f g
1 1 2 b
Комментарии:
1. привет, это возвращает обе строки
2. @Chris назначьте его обратно новому фрейму данных