Eu simplesmente não consigo descobrir o que "==" significa na segunda linha:
- Não é um teste, não existe uma declaração if ...
- Não é uma declaração variável ...
Eu nunca vi isso antes, a coisa é data.ctage==cat
é uma série de pandas e não um teste ...
for cat in data["categ"].unique():
subset = data[data.categ == cat] # Création du sous-échantillon
print("-"*20)
print('Catégorie : ' + cat)
print("moyenne:\n",subset['montant'].mean())
print("mediane:\n",subset['montant'].median())
print("mode:\n",subset['montant'].mode())
print("VAR:\n",subset['montant'].var())
print("EC:\n",subset['montant'].std())
plt.figure(figsize=(5,5))
subset["montant"].hist(bins=30) # Crée l'histogramme
plt.show() # Affiche l'histogramme
python
pandas
dataframe
matrix-indexing
Amaumox
fonte
fonte
positive_X = X[X > 0]
de numpy.Respostas:
Ele está testando cada elemento da
data.categ
igualdade comcat
. Isso produz um vetor de valores Verdadeiro / Falso. Isso é passado como no indexador paradata[]
, que retorna as linhasdata
correspondentes aos valores True no vetor.Para resumir, a expressão inteira retorna o subconjunto de linhas de
data
onde o valor dedata.categ
é igualcat
.(Parece possível que toda a operação possa ser feita com mais elegância
data.groupBy('categ').apply(someFunc)
.)fonte
Ele cria uma série booleana com índices onde
data.categ
é igual acat
, com essa máscara booleana, você pode filtrar seu quadro de dados, ou sejasubset
, terá todos os registros em que essecateg
é o valor armazenadocat
.Este é um exemplo usando dados numéricos
fonte
Sim, é um teste. Expressões booleanas não estão restritas a
if
instruções.Parece que
data
é um quadro de dados (PANDAS). A expressão usada como um índice de quadro de dados é como o PANDAS indica um seletor ou filtro. Isso diz para selecionar todas as linhas nas quais o fieledcateg
corresponde à variávelcat
(aparentemente uma variável predefinida). Essa coleção de linhas se torna um novo quadro de dadossubset
.fonte
data.categ == cat
retornará uma lista booleana que será usada para filtrar seu quadro de dados, deixando apenas valores onde booleano é igualTrue
.Booleanos são usados em muitas situações, não apenas em
if
declarações.fonte
Aqui você está verificando
data.categ
com o elemento iterating,,cat
no dicionário dedata
.E se eles são iguais, você continua o ciclo.
fonte