** Créer et comprendre des arbres de décision à partir de zéro en Python ** 1. Présentation-2. Bases du programme Python --3 Analyse des données Pandas de la bibliothèque
Je vais vous expliquer comment utiliser la bibliothèque Pandas pour créer un arbre de décision.
#Importez pamdas et déclarez-le pour être utilisé dans le programme sous le nom pd.
import pandas as pd
3.2 DataFrame, Series pandas utilise des cadres et des séries de données. Lorsque les données sont représentées comme un tableau Excel, comme illustré dans la figure suivante, lorsque les lignes sont des données et que les colonnes sont des attributs de données, DataFrame représente la table entière et Series représente une ligne. Je vais.
Lisez un fichier Excel. read_excel [ExcelWriter](https://pandas.pydata.org/pandas-docs/stable/ référence / api / pandas.ExcelWriter.html)
#Téléchargez le fichier Excel au même emplacement que ce fichier ipynb.
df0 = pd.read_excel("data_golf.xlsx")
#Affichez le DataFrame sous forme de tableau HTML.
from IPython.display import HTML
html = "<div style='font-family:\"Meilio\";'>"+df0.to_html()+"</div>"
HTML(html)
#Enregistrer dans un fichier Excel(avec est f.Quelque chose qui exécute automatiquement le processus de fermeture)
with pd.ExcelWriter("data_golf2.xlsx") as f:
df0.to_excel(f)
Comment générer à partir du type de dictionnaire (tableau associatif): Le type de dictionnaire (tableau associatif) organise les données par colonnes. DataFrame
#Générer à partir du type de dictionnaire: collectez les données par colonnes.
d = {
"Météo":["Bien","Bien","Nuageux","pluie","pluie","pluie","Nuageux","Bien","Bien","pluie","Bien","Nuageux","Nuageux","pluie"],
"Température":["Chaud","Chaud","Chaud","Chaud","Ryo","Ryo","Ryo","Chaud","Ryo","Chaud","Chaud","Chaud","Chaud","Chaud"],
"Humidité":["Haute","Haute","Haute","Haute","d'habitude","d'habitude","d'habitude","Haute","d'habitude","d'habitude","d'habitude","Haute","d'habitude","Haute"],
"Vent":["Rien","Oui","Rien","Rien","Rien","Oui","Oui","Rien","Rien","Rien","Oui","Oui","Rien","Oui"],
"le golf":["×","×","○","○","○","×","○","×","○","○","○","○","○","×"],
}
df0 = pd.DataFrame(d)
Comment générer à partir d'un tableau: organisez les données en lignes. DataFrame
#Générer à partir d'un tableau: organisez les données en lignes.
d = [["Bien","Chaud","Haute","Rien","×"],
["Bien","Chaud","Haute","Oui","×"],
["Nuageux","Chaud","Haute","Rien","○"],
["pluie","Chaud","Haute","Rien","○"],
["pluie","Ryo","d'habitude","Rien","○"],
["pluie","Ryo","d'habitude","Oui","×"],
["Nuageux","Ryo","d'habitude","Oui","○"],
["Bien","Chaud","Haute","Rien","×"],
["Bien","Ryo","d'habitude","Rien","○"],
["pluie","Chaud","d'habitude","Rien","○"],
["Bien","Chaud","d'habitude","Oui","○"],
["Nuageux","Chaud","Haute","Oui","○"],
["Nuageux","Chaud","d'habitude","Rien","○"],
["pluie","Chaud","Haute","Oui","×"],
]
df0 = pd.DataFrame(d,columns=["Météo","Température","Humidité","Vent","le golf"])
#Obtenez des informations sur la table, etc.
#Nombre de lignes et de colonnes
print(df0.shape) #production(14, 5)
#Obtenez le nombre de lignes
print(df0.shape[0]) #Sortie 14
#Obtenir le nom de la colonne
print(df0.columns) #Index de sortie(['Météo', 'Température', 'Humidité', 'Vent', 'le golf'], dtype='object')
#Obtenir le nom de la ligne (le nom de la ligne de df0 est un index attribué automatiquement)
print(df0.index) #Gamme de sortieIndex(start=0, stop=14, step=1)
#Obtenez de la valeur
#Obtenez la valeur en spécifiant la ligne et la colonne.
#Numéro de ligne 1(Seconde donnée),Obtenez l'humidité de.
print(df0.loc[1,"Humidité"]) #Sortie élevée
#Obtenez la valeur en spécifiant plusieurs lignes et colonnes dans un tableau.
#Numéro de ligne 1,2,Les valeurs météo et golf de 4 sont acquises ensemble, et les données acquises sont également de type DataFrame.
df = df0.loc[[1,2,4],["Météo","le golf"]]
print(df)
#production
#Météo golf
#1 amende ×
#2 Nuageux ○
#4 pluie ○
print(type(df)) #production<class 'pandas.core.frame.DataFrame'>
#Les tranches (processus d'extraction d'un tableau) peuvent également être utilisées pour spécifier un tableau de lignes et de colonnes.
#Obtenez des données pour toutes les colonnes des lignes 1 à 4. loc spécifie un nom, donc 1:Si c'est 4, cela inclut 4.
df = df0.loc[1:4,:]
print(df)
#production
#Météo Température Humidité Vent Golf
#1 Chaleur fine Oui ×
#2 Chaleur nuageuse Non élevé ○
#3 Pluie, chaleur, pas de hauteur ○
#4 Rain Ryo Normal Aucun ○
#iloc vous permet d'indexer des lignes et des colonnes. Les index sont comptés à partir de 0.
#Obtenez des données autres que la dernière colonne (golf) des lignes 1 à 3. iloc spécifie un index, donc 1:Si c'est 4, cela n'inclut pas 4.
df = df0.iloc[1:4,:-1]
print(df)
#production
#Météo Température Humidité Vent
#1 Ensoleillé, chaud et chaud
#2 Chaleur nuageuse
#3 Pluie, chaleur, pas de hauteur
#1 ligne(Series)Obtenez de la valeur
#Obtenez les données de la première ligne. s est le type de série
s = df0.iloc[0,:]
#Comme le type de dictionnaire, s["Nom de colonne"]Vous pouvez obtenir la valeur avec.
print(s["Météo"]) #Fin de sortie
#Organiser toutes les valeurs(numpy.ndarray)Obtenez dans le format de.
print(df0.values)
#Regardons la boucle de données et les données séquentielles.
#Boucle sur la ligne. Regardez les données ligne par ligne.
for i,row in df0.iterrows():
#i est le nom de la ligne (index de la ligne), la ligne est la série
print(i,row)
pass
#Boucle sur une colonne. Regardez les données verticalement, colonne par colonne.
for i,col in df0.iteritems():
#i est le nom de la colonne, col est la série
print(i,col)
pass
#la fréquence(Nombre d'apparitions de données)
#Obtenez toutes les données de la colonne météo. s est la série
s = df0.loc[:,"Météo"]
#Obtenez quelles données et combien.
print(s.value_counts())
#production
#Amende 5
#Pluie 5
#Nuageux 4
# Name:Météo, dtype: int64
#Par exemple, obtenez le nombre de beau temps.
print(s.value_counts()["Bien"]) #Sortie 5
#Extraction de données spécifiques
#Acquisition de données sur les beaux jours
print(df0.query("Météo=='Bien'"))
#production
#Météo Température Humidité Vent Golf
#0 Chaleur fine Pas élevée ×
#1 Chaleur fine Oui ×
#7 Fin, chaud, haut, non ×
#8 Sunny Ryo Normal Aucun ○
#10 Sunny Warm Normal Oui ○
#Obtenez des données pour aller au golf par beau temps
print(df0.query("Météo=='Bien'et golf=='○'"))
#production
#Météo Température Humidité Vent Golf
#8 Sunny Ryo Normal Aucun ○
#10 Sunny Warm Normal Oui ○
#Obtenez des données par beau temps ou allez au golf
print(df0.query("Météo=='Bien'ou golf=='○'"))
#production
#Météo Température Humidité Vent Golf
#0 Chaleur fine Pas élevée ×
#1 Chaleur fine Oui ×
#2 Chaleur nuageuse Non élevé ○
#3 Pluie, chaleur, pas de hauteur ○
#4 Rain Ryo Normal Aucun ○
#6 Nuageux Ryo Normal Oui ○
#7 Fin, chaud, haut, non ×
#8 Sunny Ryo Normal Aucun ○
#9 Pluie Chaud Normal Aucun ○
#10 Sunny Warm Normal Oui ○
#11 Nuageux Chaud Élevé Oui ○
#12 Chaleur nuageuse Normal Aucun ○
Recommended Posts