Как решить, что объект DataFrame не имеет атрибута column_name? - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь отобразить столбец в моем фрейме данных с [Да, Нет] на [1,0] без необходимости создания нескольких переменных фиктивных столбцов. Я использовал:

df['A'] = df.A.map({'Yes':1, 'No': 0})

, где df - это фрейм данных, а A - столбец в фрейме. Это сработало, однако у меня есть несколько столбцов, которые я хотел бы отобразить, поэтому я создал функцию.

def mapping(df, column_name):
 mapped =  df.column_name.map({'Yes':1, 'No':1})
 df = df.replace(column_name, mapped)
 return df

В блокноте jupyter не было никаких возражений, он запустился. но когда я вызвал функцию и вставил свои значения, такие как

mapping(df, B)

, я получаю следующую ошибку:

'AttributeError: 'DataFrame' object has no attribute 'column_name''

Как мне решить эту проблему, пожалуйста?

1 Ответ

1 голос
/ 10 апреля 2020

Оператор, который вызывает ошибку:

mapped =  df.column_name.map({'Yes':1, 'No':1})

В pandas эта строка пытается получить доступ к столбцу с именем 'column_name'. Это означает, что это не берет строку, хранящуюся в переменной 'column_name', а вместо этого принимает 'column_name' как строку и пытается найти атрибут с именем 'column_name'.

Вместо этого вы можете использовать инструкцию;

mapped =  df[column_name].map({'Yes':1, 'No':1})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...