Как сравнить строку Series с другой строкой в ​​python - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь сравнить строку из Серии со строкой в ​​Python. Здесь, кажется, все в порядке - я получаю результаты истин и ложей:

domains_types['subtype'].astype(str) == 'Default'

для файла: печать (domains_types)

Но когда я пытаюсь использовать его в «если», возникает некоторая проблема: ValueError: Истинное значение Series является неоднозначным. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().

if domains_types['subtype'].astype(str) == 'Default':
    domains_types['Category'] = 'e-commerce'
else:
    domains_types['Category'] = 'other'

Я новичок в Python, не могли бы вы объяснить, что здесь есть проблема и как ее решить?

Я хотел бы добавить новый столбец с категорией в соответствии с типом sybtype. результат, который я хочу, здесь пока есть только "другая" категория

1 Ответ

0 голосов
/ 12 марта 2019
def cat(val):
    if val == 'Default':
        return('e-commerce')
    else:
        return('other')

df['Category'] = df.apply(lambda x: cat(x['Subtype']), axis=1)

Это должно возвращать либо «другое», либо «электронная коммерция» в зависимости от значения каждого значения в столбце «Подтип».Проблема с проверкой эквивалентности всей серии описана выше.

Или, если вы хотите использовать «нормальный» цикл for, вы можете выполнить итерации по кадру данных примерно так:

newcol = []

for index, row in df.iterrows():
    if row.Subtype == 'Default':
        newcol.append('e-commerce')
    else:
        newcol.append('other')

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