Как исправить "TypeError: неподдерживаемые типы операндов для &: 'list' и 'list'", используя numpy.where () с python? - PullRequest
0 голосов
/ 08 июля 2019

У меня есть таблица csv со многими столбцами, включая столбец с именем «blend» и столбец с именем «hires».В Blend есть такие элементы, как 'N', 'Y unpub NAME' и 'Y?unnpub NAME. 'У Hires есть такие элементы, как 'N', 'redo; NAME OF TELESCOPE' и 'NAME OF TELESCOPE.'

Мне нужен список (называемый 'known_binary'), в котором выполняются следующие условия: blend == 'Y '& hires! =' N '& hires! =' Повторить '.(Я буду создавать другие списки с другими комбинациями этих возможностей, такими как список, где: blend == 'Y?' & (Hires == 'N' | hires == 'redo').

Iзнать, как заставить Python просто посмотреть либо на первую букву элемента, либо на первые четыре буквы и т. д. (например, это работает без ошибок):

redo = np.where([x[0:4]=='redo' for x in hires])[0]

Но, когда я ставлю несколько вещейв np.where () это не работает:

file = pandas.read_csv('file location')
blend = file["blend"]
hires = file["hires"]


known_binary = np.where(([x[0]=='Y' for x in blend]) & ([x[0]!='N' for x in hires]) & ([x[0:4]!='redo' for x in hires]))[0]

Я получаю ошибку: «Ошибка типа: неподдерживаемые типы операндов для &: 'list' и 'list'"

Мне просто нужен список индексов (может быть неправильная формулировка, извините), где условия, которые я изложил, верны.

Если элементы в столбце найма (например) были просто "переделаны", а не"redo; имя конкретного телескопа" У меня не возникло бы никаких проблем.

Я знаю, как сделать некоторые специфические вещи в python для астрономии, но в целом я ОЧЕНЬ мало понимаю, как все это работаетЗаранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...