как найти максимальное количество столбцов с одинаковым именем

#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), и это дало мне результат. я ценю вашу помощь