[PYTHON] [Einführung in Pandas] Lesen Sie eine CSV-Datei ohne Spaltennamen und geben Sie ihr einen Spaltennamen

Geben Sie einer CSV-Datei einen Spaltennamen ohne Spaltennamen

Ich lese manchmal eine CSV-Datei ohne Spaltennamen und gebe ihr einen Spaltennamen, aber ich vergesse oft, wie es geht, also notiere es mir als Memorandum.

Es tut uns leid. Der Inhalt ist wirklich keine große Sache.

Zu verwendende Daten

Die verwendeten Daten waren die im UCI-Repository für maschinelles Lernen veröffentlichten Wohnungsdaten. housing data

Daten gelesen

Lesen Sie zuerst die Daten. Die Daten werden durch Leerzeichen anstelle von Kommas getrennt. Geben Sie daher die Leerzeichen in sep an. Da Housing.Data keinen Spaltennamen hat, werden die Daten in der ersten Zeile beim normalen Lesen als Spaltenname erkannt. Geben Sie daher header = None an, um dies zu vermeiden.

import pandas as pd
df = pd.read_csv("housing.data", header=None, sep="\s+")

Das Ergebnis des Lesens der Daten ist

スクリーンショット 2019-11-17 16.55.48.png

Es wird sein. Nummern von 0 bis 13 werden automatisch als Spaltennamen zugewiesen. Ersetzen Sie diesen automatisch erstellten Spaltennamen durch den ursprünglichen Spaltennamen. Erstellen Sie zunächst ein Wörterbuch (label_dict), das den Spaltennamen vor der Konvertierung mit dem Spaltennamen nach der Konvertierung verknüpft. Wenn Sie in der Umbenennungsmethode des Datenrahmens label_dict angeben, werden die Spaltennamen gemäß der im Wörterbuch angezeigten Entsprechung ersetzt.

labels =  ["CRIM", "ZN", "INDUS", "CHAS", "NOX", "RM", "AGE", "DIS", "RAD", "TAX", "PTRATIO", "B", "LSTAT", "MEDV"]
labels_dict = {num: label for num, label in enumerate(labels)}
df = df.rename(columns = labels_dict)
#Speichern Sie den Datenrahmen mit dem hinzugefügten Spaltennamen als CSV-Datei.
df.to_csv("housing_data.csv", index=False)

Wenn Sie nach der Ausführung das Innere von df überprüfen, können Sie feststellen, dass der Spaltenname geändert wurde.

スクリーンショット 2019-11-17 17.02.34.png

Omake (Bitte beachten Sie, dass das Folgende nichts mit dem ursprünglichen Inhalt dieses Artikels zu tun hat.)

Da es sich um eine große Sache handelt, verwenden wir diese Daten, um den Immobilienpreis grob vorherzusagen.

Werfen wir einen kurzen Blick auf die Daten

Wenn Sie den folgenden Code ausführen, sehen Sie, dass es sich bei diesen Daten ausschließlich um numerische Daten handelt und keine Werte fehlen. Sie können auch Statistiken anzeigen. Bitte versuchen Sie es, wenn Sie möchten.

from IPython.display import display
#Datentypanzeige
display(df.dtypes)
#Anzeige der Anzahl fehlender Werte
display(df.isnull().sum())
#Anzeige von Statistiken
display(df.describe())

Normalerweise werden Daten vorverarbeitet, während die Statistiken der Daten überprüft werden, und dann werden die Daten in den Algorithmus für maschinelles Lernen eingegeben, diesmal jedoch weggelassen. Was ich gesagt habe ist, dass es okay ist.

Lernen mit einem linearen Regressionsmodell

Ich lasse verschiedene Dinge weg. Immerhin ist es okay. Zumindest standardisieren wir die Daten und werten sie mit Testdaten aus, passen jedoch keine Hyperparameter an. Die Bewertung basierte einfach auf dem mittleren quadratischen Fehler (RMSE). Der Code ist unten.

from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
%matplotlib inline

#Pipeline-Einstellungen
pipe = Pipeline([
    ("scl", StandardScaler()),
    ("pca", PCA(n_components=10)),
    ("lr", LinearRegression(normalize=False))
])

#Datenaufteilung
xtrain, xtest, ytrain, ytest = train_test_split(df[df.columns[df.columns != "MEDV"]], df["MEDV"], test_size=0.3, random_state=1)

#Modelllernen
pipe.fit(X=xtrain, y=ytrain)

#Preisprognose
ypred = pipe.predict(xtest)

#Modellbewertung
display(mean_squared_error(ytest, ypred))

#Ergebnisse anzeigen
result = pd.DataFrame(columns=["index", "true", "pred"])
result["index"] = range(len(ytest))
result["true"] = ytest.tolist()
result["pred"] = ypred

plt.figure(figsize=(15,5))
plt.scatter(result["index"], result["true"], marker="x", label="true")
plt.scatter(result["index"], result["pred"], marker="v", label="predict")
plt.xlabel("ID")
plt.ylabel("Medianpreis")
plt.grid()
plt.legend()
plt.show()

Als ich dies tat, betrug der durchschnittliche quadratische Fehler 21,19. Ich weiß nicht, ob dies gut oder schlecht ist, ohne die Daten richtig zu betrachten, aber vorerst konnte ich den Unterschied zwischen der Preisprognose und dem wahren Wert bewerten.

Zusätzlich werden der vorhergesagte Wert und der wahre Wert wie folgt in Gramm umgewandelt. Auf einen Blick sehen Sie, dass je höher der Preis, desto größer die Abweichung und desto niedriger der vorhergesagte Wert.

スクリーンショット 2019-11-17 18.33.46.png

Recommended Posts

[Einführung in Pandas] Lesen Sie eine CSV-Datei ohne Spaltennamen und geben Sie ihr einen Spaltennamen
Lesen und formatieren Sie CSV-Dateien gemischt mit Komma-Registerkarten mit Python-Pandas
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
Lesen einer CSV-Datei mit Python 2/3
Lesen Sie die CSV-Datei: pandas
So lesen Sie Seriennummerndateien in einer Schleife, verarbeiten sie und zeichnen sie grafisch auf
Lesen Sie die CSV-Datei und zeigen Sie sie im Browser an
CSV-Datei lesen und schreiben
Jedes Mal, wenn ich versuche, eine CSV-Datei mit Pandas zu lesen, wird ein numpy-Fehler angezeigt.
Dateien lesen und schreiben
Dateien schreiben und lesen
So fügen Sie eine CSV-Datei mit Pandas in eine Excel-Datei ein
[Python] So kratzen Sie eine lokale HTML-Datei und geben sie mit Beautiful Soup als CSV aus
So machen Sie den Containernamen in Docker als Subdomain zugänglich
Lesen Sie Python csv und exportieren Sie es nach txt
[pandas] CSV-Datei Lese- und Anzeigemethode
Lesen von CSV-Dateien mit Pandas
Laden Sie Pandas DataFrame als CSV-Datei herunter
Lesen Sie CSV und analysieren Sie mit Pandas und Seaborn
Ein Befehl zum Angeben einer Datei mit einem bestimmten Namen in einem Verzeichnis mit find und mv, cp oder gzip (Linux)
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Ich möchte ein Element mit numpy in eine Datei schreiben und es überprüfen.
[Python] Kombinieren von Listen mit Zahlen zu Zeichenfolgen und Schreiben in eine Ausgabedatei
[Python] Wie man Excel-Dateien mit Pandas liest
Lesen Sie CSV-Dateien, die in Flask hochgeladen wurden, ohne sie zu speichern
So lesen Sie Dateien in verschiedenen Verzeichnissen
[Python] Japanische CSV mit Pandas ohne verstümmelte Zeichen lesen (weitere auf Japanisch geschriebene Spalten extrahieren)
[Einführung in den Systemhandel] Ich habe einen Stochastic Oscillator mit Python gezeichnet und damit gespielt ♬
Beim Lesen einer CSV-Datei mit read_csv von Pandas wird die erste Spalte zum Index
Lesen Sie die CSV-Datei mit dem Jupiter-Notizbuch und schreiben Sie die Grafik übereinander
Ich möchte einem Pandas-Datenrahmen eine group_id geben
Erstellt ein Modul zur Überwachung von Datei- und URL-Aktualisierungen
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
[Python] Ein Memo zum vertikalen Schreiben von CSV mit Pandas
Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
Geben Sie einen Binärspeicherauszug in Binärdatei und zurück in eine Binärdatei aus
2 Möglichkeiten, alle CSV-Dateien in einem Ordner zu lesen
Python - Lesen Sie Daten aus einer numerischen Datendatei, um die verteilte, gemeinsam verteilte Matrix, Eigenwerte und Eigenvektoren zu finden
[Python] Was ist ein Tupel? Erklärt, wie man es benutzt und wie man es benutzt, ohne zu tippen.
Lesen Sie die Python-CSV-Datei
[Python] Ändern Sie den Namen der Bilddatei in eine Seriennummer
[Python] Lesen Sie die CSV-Datei und zeigen Sie die Abbildung mit matplotlib an
Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame
Holen Sie sich eine globale IP und exportieren Sie sie in Google Spreadsheets
[Einführung in Python] Kombinieren Sie Nikkei-Durchschnitts- und NY Dow-CSV-Daten
[Python] So geben Sie eine Pandas-Tabelle in eine Excel-Datei aus
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
[Einführung in Tensorflow] Verstehen Sie Tensorflow richtig und versuchen Sie, ein Modell zu erstellen
Was tun, wenn Sie nach dem Durchsuchen einer Textdatei Übereinstimmungen mit Binärdateien (Standardeingabe) erhalten?
Lesen Sie das alte Gakushin DC-Antragsformular Word-Datei (.doc) von Python und versuchen Sie, es zu bedienen