#python #pandas #numpy #dataframe #data-manipulation
#python #панды #numpy #фрейм данных #манипулирование данными
Вопрос:
у меня возникли некоторые проблемы с этим фреймом данных, где столбцы с одинаковым именем должны быть уменьшены до значений, по крайней мере, с одним «1» как «1».
--- --- --- --- --- --- --- --- ---
| a | a | a | b | c | c | c | d | d |
--- --- --- --- --- --- --- --- ---
| 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
--- --- --- --- --- --- --- --- ---
для чего-то подобного использование условия «или» для каждого столбца для огромного набора данных может быть трудоемкой задачей, поэтому у меня возникают проблемы с ее пониманием. Я использовал max (axis = 1, level = 0), но все равно не смог этого сделать.
мой желаемый результат :
--- --- --- ---
| a | b | c | d |
--- --- --- ---
| 1 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 |
--- --- --- ---
Ответ №1:
Проверьте с помощью max
df = df.max(level=0, axis=1)
Комментарии:
1. привет, ценю ответ, как я упоминал выше, я уже пробовал это, но я получаю сообщение об ошибке «None of [Int64Index([ 0, 1, 2, ……….], dtype=’int64′, длина=30507)] находятся в [столбцы]» и мне было трудно понять это. в основном потому, что у меня большие данные.
2. @PraneethBhandary Ваш столбец еще не является столбцом, может сделать df.head().to_dict() ?
3. я получаю предупреждающее сообщение о том, что некоторые из моих столбцов пропущены, когда я пытаюсь df.head().to_dict()
4. эй, я понял это, мои данные были закодированы в 1 и 0, потому что я использовал тип объекта.astype(‘int’).max(level = 0, axis = 1), и это дало мне результат. я ценю вашу помощь