Criei o seguinte dataframe do pandas:
import pandas as pd
ds = {'col1' : ['A','A','B','C','C','D'],
'col2' : ['A','B','C','D','D','A']}
df = pd.DataFrame(data=ds)
O dataframe se parece com isto:
print(df)
col1 col2
0 A A
1 A B
2 B C
3 C D
4 C D
5 D A
Os valores possíveis em col1
e col2
são A
, B
, C
e D
.
Preciso criar 4 novas colunas, chamadas:
countA
:conta quantosA
estão em cada linha/registrocountB
:conta quantosB
estão em cada linha/registrocountC
:conta quantosC
estão em cada linha/registrocountD
:conta quantosD
estão em cada linha/registro
Então, a partir do exemplo acima, o dataframe resultante ficaria assim:
Alguém pode me ajudar, por favor?
Provavelmente isso pode funcionar para você
o que dá
Aqui está uma maneira de usar
pd.get_dummies()
e aqui está uma maneira de usar
value_counts()
Saída:
Mantenha-o simples, você pode
stack
+droplevel
para obter uma série, depoiscrosstab
contar ejoin
a saída, opcionalmente depoisadd_prefix
renomear as colunas:Saída:
Você pode comparar uma coluna inteira com uma letra específica, converter booleanos para int e somar tais séries obtidas para cada letra. Por exemplo:
importar pandas como pd
retorna: