Я хочу, чтобы мой текущий набор данных, заполненный ints, классифицировал их по определенным критериям. Таблица выглядит примерно так:, классифицирующий серию на новый столбец в pandas
[in]> df = pd.DataFrame({'A':[0,2,3,2,0,0],'B': [1,0,2,0,0,0],'C': [0,0,1,0,1,0]})
[out]>
A B C
0 0 1 0
1 2 0 0
2 3 2 1
3 2 0 0
4 0 0 1
5 0 0 0
Я хотел бы классифицировать их в отдельной колонке по строке. Будучи более знакомым с R, я попытался создать новый столбец с правилами в определении этого столбца. После этого я попытался с .ix и lambdas, которые привели к ошибкам типа (между целями &). У меня такое впечатление, что это довольно простой вопрос. Хотя нижеследующее совершенно неправильно, здесь есть логика от попытки 1:
df['D']=(
if ((df['A'] > 0) & (df['B'] == 0) & df['C']==0):
return "c1";
elif ((df['A'] == 0) & ((df['B'] > 0) | df['C'] >0)):
return "c2";
else:
return "c3";)
для конечного результата:
A B C D
0 0 1 0 "c2"
1 2 0 0 "c1"
2 3 2 1 "c3"
3 2 0 0 "c1"
4 0 0 1 "c2"
5 0 0 0 "c3"
Если кто-то может помочь мне понять это было бы очень высокую оценку.
Я голосую за метод 2 только для удобства чтения. –