Aidemy 2020/9/21
Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur KI-Fachschule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Das letzte Mal war mein erster Beitrag, aber ich bin sehr froh, dass viele Leute ihn gelesen haben. Vielen Dank! Dies ist der zweite Beitrag zur Datenbereinigung. Freut mich, dich kennenzulernen.
Was diesmal zu lernen ・ Über CSV ・ Verarbeitung auf fehlende Werte (NaN) -Prozessdaten für jeden Schlüssel im Wörterbuch
1 CSV
-CSV ist eine Datendatei, die häufig in der Datenanalyse verwendet wird. Laden Sie es zuerst mit Pandas. __ · pd.read_csv ("Datendateiname", Header = Angabe der Spalte, die Header sein soll) __
import pandas as pd
# wine.Laden von csv
df = pd.read_csv("./4050_data_cleansing_data/wine.csv", header=None)
#Spaltennamen festlegen
df.columns = [Kürzung]
#Ausgabe
df
import csv
with open("Dateiname","w") as csvfile:
writer=csv.writer(csvfile, lineterminator="\n")
writer.writerow(["version","year","gen"]) #Die erste Zeile ist der Spaltenname
writer.writerow(["Rot grün",1996,1])
writer.writerow(["Gold und Silber",1999,2])
writer.writerow(["RS",2002,3])
#Lesen
with open("Dateiname","r") as csvfile:
print(csvfile.read())
# version,year,gen
#Rot grün,1996,1
#Gold und Silber,1999,2
# RS,2003,3
・ Dies ist einfacher, wenn DataFrame in CSV konvertiert wird __ · DataFrame-Daten .to_csv ("Dateiname") __
data={"version":["Rot grün","Gold und Silber","RS"],"year":[1996,1999,2002],"gen":[1,2,3]}
df=pd.DataFrame(data)
df.to_csv("Dateiname")
-Löschen von Zeilen und Spalten, die NaN enthalten, heißt __ "listwise delete" __. Das listweise Löschen erfolgt mit der Funktion dropna (). Wenn kein Argument angegeben wird, wird die Zeile gelöscht, und wenn Achse = 1 angegeben wird, wird die Spalte gelöscht. __ · DataFrame-Daten .dropna () __
-Wenn die Anzahl der Daten beim listweisen Löschen zu gering ist, ist es besser, die Spalte mit wenigen Fehlern zu belassen und die Zeile mit NaN daraus zu löschen. Dies wird als __ "paarweises Löschen" __ bezeichnet. __ · DataFrame-Daten [[Spalte zum Verlassen]] .dropna () __
data={"version":["Rot grün","Gold und Silber","RS"],"year":[1996,1999],"gen":[1]}
df=pd.DataFrame(data)
#Das listweise Löschen hat weniger Daten, also Version,Entfernen Sie Zeilen, die NaN enthalten, und lassen Sie nur die Jahresspalte übrig
df[[0,1]].dropna()
#version year
#Rot-Grün 1996
#Gold und Silber 1999
-Komplementierung durch Ersetzen alternativer Daten anstelle von Löschen. Verwenden Sie die Funktion fillna (). Setzen Sie "alternative Daten" oder "method =" ffill "" (wenden Sie den Wert in der vorherigen Zeile an) auf das Argument. __ · DataFrame-Daten .fillna () __
data={"version":["Rot grün","Gold und Silber","RS"],"year":[1996,1999],"gen":[1]}
df=pd.DataFrame(data)
#Ersetzen Sie NaN durch vorherige Daten
df.fillna(method="ffill")
#version year gen
#Rot-Grün 1996 1
#Gold und Silber 1999 1
#RS 1999 1
data={"version":["Rot grün","Gold und Silber","RS"],"year":[1996,1999],"gen":[1]}
df=pd.DataFrame(data)
#Ersetzen Sie NaN durch vorherige Daten
df.fillna(method="ffill")
#version year gen
#Rot-Grün 1996 1
#Gold und Silber 1999 1
#RS 1997.5 1
df = pd.read_csv("./4050_data_cleansing_data/wine.csv", header=None)
df.columns = ["","Alcohol",(Kürzung)]
# "Alcohol"Durchschnittswertberechnung
df["Alcohol"].mean()
# 13.000617977528091
data={"version":["Rot grün","Gold und Silber","RS","Rot grün"],"year":[1996,1999,2002,1996],"gen":[1,2,3,1]}
df=pd.DataFrame(data)
#Doppelte Daten löschen
df.drop_duplicates()
# version,year,gen
#Rot grün,1996,1
#Gold und Silber,1999,2
# RS,2003,3
data={"version":["Rot grün","Gold und Silber","RS"],"year":[1996,1999,2002],"gen":[1,2,3]}
df=pd.DataFrame(data)
#Zuordnung nach dem Erstellen einer Korrespondenztabelle vom Typ Wörterbuch
version_map={"Rot grün":"Kanto","Gold und Silber":"Johto","RS":"Hoenn"}
df["region"] = df["version"].map(version_map)
df
# version,year,gen,region
#Rot grün,1996,1,Kanto
#Gold und Silber,1999,2,Johto
# RS,2003,3,Hoenn
data={"version":["Rot grün","Gold und Silber","RS","DP"],"year":[1996,1999,2002,2006],"gen":[1,2,3,4]}
df=pd.DataFrame(data)
#Geben Sie den Bereich nach Jahr an und erstellen Sie zuerst die Bereichsliste.
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
das ist alles. Vielen Dank, dass Sie so weit gelesen haben.
Recommended Posts