что такое синтаксис множественных условий pandas ix или ilo c - PullRequest
0 голосов
/ 17 марта 2020

Обработка правительственного списка Управления по контролю за иностранными активами (OFA C)

https://www.treasury.gov/ofac/downloads/sdn.csv

Во 2-й колонке (число, начинающееся с 0) предлагается если в этой строке указана индивидуальная информация, информация о предприятии (-0-), самолете или судне

Если я хочу, чтобы оба отдельных столбца равнялись «индивидуальный» и «-0-», каков правильный синтаксис? Следующие коды работают только для отдельного столбца, равного 'индивидуальному'

name_orig = pd.read_csv('http://www.treasury.gov/ofac/downloads/sdn.csv', sep=',', header=None)

name_orig.rename(columns={0: 'id', 1: 'names', 2: 'individual', 11: 'sdn_info'}, inplace=True)

names = name_orig.ix[name_orig.individual == 'individual', ['id', 'names', 'individual', 'sdn_info']]

Это не похоже на работу

names = name_orig.ix[name_orig.individual == 'individual' | name_orig.individual == '-0-' , ['id', 'names', 'individual', 'sdn_info']]

Ответы [ 3 ]

2 голосов
/ 17 марта 2020

В маске отсутствуют скобки:

names = name_orig.ix[(name_orig.individual == 'individual') | (name_orig.individual == '-0-'), ['id', 'names', 'individual', 'sdn_info']]

или в последних версиях:

names = name_orig.loc[(name_orig.individual == 'individual') | (name_orig.individual == '-0-'), ['id', 'names', 'individual', 'sdn_info']]
1 голос
/ 17 марта 2020

Видимо, если вы запустите

name_orig.individual.unique()

Вывод:

array(['-0- ', 'individual', 'vessel', 'aircraft', nan], dtype=object)

-0- имеет дополнительный пробел. Я думаю, что это будет работать:

names = name_orig.ix[((name_orig.individual == 'individual') | (name_orig.individual == '-0- ')), ['id', 'names', 'individual', 'sdn_info']]
1 голос
/ 17 марта 2020

Существует loc/iloc, который даст вам результат, на который вы рассчитываете:

names = name_orig[['id', 'names', 'individual', 'sdn_info']].loc[(name_orig['individual'] == 'individual') | (name_orig['individual'] == '-0-')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...