[PYTHON] Datenbereinigung 2 Datenbereinigung mit DataFrame

Aidemy 2020/9/21

Einführung

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

Laden Sie CSV mit Pandas

-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

CSV mit CSV-Bibliothek erstellen

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

CSV mit Pandas erstellen

・ 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")

2 Verarbeitung auf fehlende Werte (NaN)

Löschen Sie Zeilen und Spalten, die NaN enthalten

-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

Vervollständigung fehlender Werte (1)

-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

Vervollständigung fehlender Werte (2)

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

3 Verarbeiten Sie die Daten für jeden Schlüssel im Wörterbuch

Berechnen Sie für jeden Schlüssel

df = pd.read_csv("./4050_data_cleansing_data/wine.csv", header=None)
df.columns = ["","Alcohol",(Kürzung)]
# "Alcohol"Durchschnittswertberechnung
df["Alcohol"].mean()
# 13.000617977528091

Extraktion und Löschung doppelter Daten

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

Erstellen Sie einen neuen Schlüssel, der einem vorhandenen Schlüssel entspricht

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

Stellen Sie den Bereich der numerischen Daten ein und kategorisieren Sie

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

Zusammenfassung

das ist alles. Vielen Dank, dass Sie so weit gelesen haben.

Recommended Posts

Datenbereinigung 2 Datenbereinigung mit DataFrame
Anwendung von Python: Datenbereinigung Teil 2: Datenbereinigung mit DataFrame
Datenanalyse mit xarray
Datenbereinigung mit Python
Wählen Sie Features mit Textdaten aus
Datenvisualisierungsmethode mit Matplotlib (1)
Datenvisualisierungsmethode mit Matplotlib (2)
Datenanalyse mit Python-Pandas
[Python] Zufällige Datenextraktion / -kombination aus DataFrame mit Random und Pandas
Abrufen von Salesforce-Daten mithilfe der REST-API
Datenerfassung mit Python Googlemap API
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (5)
Analysieren Sie Daten im CSV-Format mit SQL
Abrufen von Amazon-Daten mit Keep API # 1 Abrufen von Daten
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Datenerfassungsnotiz mit der Backlog-API
Pandas Cleansing Labeled Training Data Split
Empfehlung zur Datenanalyse mit MessagePack
Holen Sie sich Daten von Twitter mit Tweepy
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
Analysieren Sie Daten mit RegEx 100x Flash Text
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
[Python] Verschiedene Datenverarbeitung mit Numpy-Array
Erstellen einer Datenanalyseanwendung mit Streamlit
Erstellen Sie Dokumentklassifizierungsdaten schnell mit NLTK
Erstellen Sie mit Pandas einen Datenrahmen aus Excel
Sammeln Sie Daten mit Scrapy und füllen Sie mongoDB
Erstellen einer Google-Tabelle mit der Python / Google Data-API
FX-Datenerfassung mit der OANDA REST-API
SELECT-Daten mithilfe der Client-Bibliothek mit BigQuery
Kenntnis der Verwendung der Aurora Severless Data API