Ao fazer essa questão, percebi que o pandas associa a variável categórica sobre a qual estamos contando a frequência (nesse caso, a variável FACE, que assume os valores 'c' (cara) e 'C' (Coroa) ) com o index do DataFrame criado quando estamos utilizando o método df.value_counts()
. Por exemplo, não importa se eu crio o index como index = ['c', 'C']
ou index = ['C', 'c']
, ele vai fazer a associação correta com a contagem para cada valor da variável FACE ('c' ou 'C').
Por outro lado, na mesma situação, se dermos um nome qualquer para o index, como por exemplo, 'cara' e 'Coroa', o mesmo método irá resultar em valores nulos (NAN
) para as contagens.
Abaixo segue o código utilizado para resolver a questão:
m1 = 'CCcCCccCCCccCcCccCcCcCCCcCCcccCCcCcCcCcccCCcCcccCc'
m2 = 'CCCCCccCccCcCCCCccCccccCccCccCCcCccCcCcCCcCccCccCc'
m3 = 'CccCCccCcCCCCCCCCCCcccCccCCCCCCccCCCcccCCCcCCcccCC'
m4 = 'cCCccCCccCCccCCccccCcCcCcCcCcCcCCCCccccCCCcCCcCCCC'
m5 = 'CCCcCcCcCcCCCcCCcCcCCccCcCCcccCccCCcCcCcCcCcccccCc'
df = pd.DataFrame(
data = ['Cara', 'Coroa'],
index = ['c', 'C'],
columns = ['Faces']
)
df1 = pd.DataFrame(
data = {
'm1': pd.Series(list(m1)).value_counts(),
'm2': pd.Series(list(m2)).value_counts(),
'm3': pd.Series(list(m3)).value_counts(),
'm4': pd.Series(list(m4)).value_counts(),
'm5': pd.Series(list(m5)).value_counts()
},
index = ['c', 'C'],
columns = ['m1', 'm2', 'm3', 'm4', 'm5']
)
df = pd.concat(
[df, df1],
axis = 1
)
df
cujo resultado é: