Aidemy 2020/9/21
Bonjour, c'est Yope! Je suis une école littéraire croustillante, mais j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. La dernière fois, c'était mon premier message, mais je suis très heureux que de nombreuses personnes l'aient lu. Je vous remercie! Ceci est le deuxième article du nettoyage des données. Ravi de vous rencontrer.
Quoi apprendre cette fois ・ À propos de CSV ・ Traitement des valeurs manquantes (NaN) -Traiter les données pour chaque clé du dictionnaire
1 CSV
-CSV est un fichier de données souvent utilisé dans l'analyse des données. Tout d'abord, chargez-le à l'aide de Pandas. __ · pd.read_csv ("nom du fichier de données", en-tête = spécification de la colonne comme en-tête) __
import pandas as pd
# wine.Chargement de csv
df = pd.read_csv("./4050_data_cleansing_data/wine.csv", header=None)
#Définir le nom de la colonne
df.columns = [réduction]
#production
df
-Créer un CSV en utilisant la "bibliothèque CSV" intégrée à Python. __ ・ avec open ("nom de fichier", "w") comme fichier csv: __, dedans writer=csv.writer(csvfile, lineterminator="\n") Create (méthode d'écriture qui prend csvfile et code de saut de ligne comme arguments) et l'utiliser Entrez les données avec __writer.writerow ([données]) __.
import csv
with open("nom de fichier","w") as csvfile:
writer=csv.writer(csvfile, lineterminator="\n")
writer.writerow(["version","year","gen"]) #La première ligne est le nom de la colonne
writer.writerow(["Rouge, Vert",1996,1])
writer.writerow(["Or et argent",1999,2])
writer.writerow(["RS",2002,3])
#Lis
with open("nom de fichier","r") as csvfile:
print(csvfile.read())
# version,year,gen
#Rouge, Vert,1996,1
#Or et argent,1999,2
# RS,2003,3
・ C'est plus facile lors de la conversion de DataFrame en CSV __ · Données DataFrame .to_csv ("nom de fichier") __
data={"version":["Rouge, Vert","Or et argent","RS"],"year":[1996,1999,2002],"gen":[1,2,3]}
df=pd.DataFrame(data)
df.to_csv("nom de fichier")
-Supprimer les lignes et les colonnes contenant NaN s'appelle __ "listwise delete" __. La suppression par liste se fait avec la fonction dropna (). Si aucun argument n'est spécifié, la ligne est supprimée et si axis = 1 est spécifié, la colonne est supprimée. __ · Données DataFrame .dropna () __
-Si le nombre de données est trop petit lors de l'utilisation de la suppression par liste, il est préférable de laisser la colonne avec quelques défauts et d'en supprimer la ligne contenant NaN. Cela s'appelle __ "suppression par paire" __. __ · Données DataFrame [[colonne à quitter]] .dropna () __
data={"version":["Rouge, Vert","Or et argent","RS"],"year":[1996,1999],"gen":[1]}
df=pd.DataFrame(data)
#La suppression par liste contient moins de données, donc la version,Supprimer les lignes contenant NaN, ne laissant que la colonne année
df[[0,1]].dropna()
#version year
#Rouge-vert 1996
#Or et argent 1999
-Complément en remplaçant des données alternatives au lieu de les supprimer. Utilisez la fonction fillna (). Définissez "données alternatives" ou "method =" ffill "" (appliquez la valeur de la ligne précédente) à l'argument. __ · Données DataFrame .fillna () __
data={"version":["Rouge, Vert","Or et argent","RS"],"year":[1996,1999],"gen":[1]}
df=pd.DataFrame(data)
#Remplacez NaN par les données précédentes
df.fillna(method="ffill")
#version year gen
#Rouge-vert 1996 1
#Or et argent 1999 1
#RS 1999 1
-En utilisant la fonction mean () comme argument de fillna (), les données alternatives peuvent être remplacées par "la valeur moyenne de la colonne". __ · Données DataFrame .fillna (Données DataFrame .mean ()) __
data={"version":["Rouge, Vert","Or et argent","RS"],"year":[1996,1999],"gen":[1]}
df=pd.DataFrame(data)
#Remplacez NaN par les données précédentes
df.fillna(method="ffill")
#version year gen
#Rouge-vert 1996 1
#Or et argent 1999 1
#RS 1997.5 1
-La valeur moyenne et la valeur maximale de chaque clé d'un dictionnaire ou CSV (DataFrame) peuvent être calculées à l'aide de fonctions statistiques telles que mean () et max (). __ · Dictionnaire et df [clé]. Fonction statistique __
df = pd.read_csv("./4050_data_cleansing_data/wine.csv", header=None)
df.columns = ["","Alcohol",(réduction)]
# "Alcohol"Calcul de la valeur moyenne
df["Alcohol"].mean()
# 13.000617977528091
-Utilisez la méthode duplicated () pour extraire exactement les mêmes données. Utilisez la méthode drop_duplicates () pour supprimer. __ · Données en double .dupliquées () __ __ · Dupliquer les données .drop_duplicates () __
data={"version":["Rouge, Vert","Or et argent","RS","Rouge, Vert"],"year":[1996,1999,2002,1996],"gen":[1,2,3,1]}
df=pd.DataFrame(data)
#Supprimer les données en double
df.drop_duplicates()
# version,year,gen
#Rouge, Vert,1996,1
#Or et argent,1999,2
# RS,2003,3
-Créer une nouvelle clé correspondant à une clé existante s'appelle __ "mapping" __. __ · DataFrame data [nouvelle clé] = DataFrame data [clé source de référence] .map (table de correspondance de type dictionnaire) __
data={"version":["Rouge, Vert","Or et argent","RS"],"year":[1996,1999,2002],"gen":[1,2,3]}
df=pd.DataFrame(data)
#Mapper après avoir créé une table de correspondance de type dictionnaire
version_map={"Rouge, Vert":"Kanto","Or et argent":"Johto","RS":"Hoenn"}
df["region"] = df["version"].map(version_map)
df
# version,year,gen,region
#Rouge, Vert,1996,1,Kanto
#Or et argent,1999,2,Johto
# RS,2003,3,Hoenn
-Définissez une plage comme "0-5" et "6-10", et divisez ou agrégez les données pour chaque plage. Un tel traitement est appelé "division de casier". La division des bacs se fait avec pd.cut (). __ · pd.cut (Data [Clé pour spécifier la plage], [Liste de la plage], étiquettes = [Liste des noms pour chaque plage]) __ # Bin split ・ Il existe également une méthode pour spécifier le nombre de divisions et diviser automatiquement la plage. __ · pd.cut (données [clé pour spécifier la plage], nombre de divisions) __ __ · pd.value_counts (données divisées par bin) __ # Agrégation du nombre de données pour chaque plage divisée
data={"version":["Rouge, Vert","Or et argent","RS","DP"],"year":[1996,1999,2002,2006],"gen":[1,2,3,4]}
df=pd.DataFrame(data)
#Spécifiez la plage par année et créez d'abord la liste de plages.
range = [1996,2000,2007]
range_name = ["1996-2000","2000-2007"]
cut_df = pd.cut(df["year"], range, labels=range_name)
pd.value_counts(cut_df)
#1996-2000 2
#2000-2007 2
-Un fichier de données appelé CSV est souvent utilisé pour l'analyse des données. CSV est créé à l'aide de la bibliothèque Python standard ou de Pandas. -Les valeurs manquantes sont traitées en les supprimant avec dropna () ou en les complétant avec fillna (). -Dans le dictionnaire et DataFlame, vous pouvez calculer la valeur en vous référant à la clé, supprimer les données en double (drop_duplicates), créer une nouvelle clé (map), et diviser en spécifiant la plage (pd.cut). ..
c'est tout. Merci d'avoir lu jusqu'ici.
Recommended Posts