Beispieldatensätze in Pandas

90

Bei Verwendung von R ist es praktisch, "Übungs" -Datensätze mit zu laden

data(iris)

oder

data(mtcars)

Gibt es etwas Ähnliches für Pandas? Ich weiß, dass ich mit jeder anderen Methode laden kann, nur neugierig, ob etwas eingebaut ist.

canyon289
quelle
2
Mögliches Duplikat von Gibt es Beispieldatensätze für Python?
Ein anderer Ben

Antworten:

108

Seit ich diese Antwort ursprünglich geschrieben habe, habe ich sie mit den vielen Möglichkeiten aktualisiert, die jetzt für den Zugriff auf Beispieldatensätze in Python verfügbar sind. Persönlich neige ich dazu, mich an das Paket zu halten, das ich bereits benutze (normalerweise Seegeborene oder Pandas). Wenn Sie Offline-Zugriff benötigen, scheint die Installation des Datensatzes mit Quilt die einzige Option zu sein.

Seaborn

Das brillante Plotpaket seabornenthält mehrere integrierte Beispieldatensätze.

import seaborn as sns

iris = sns.load_dataset('iris')
iris.head()
   sepal_length  sepal_width  petal_length  petal_width species
0           5.1          3.5           1.4          0.2  setosa
1           4.9          3.0           1.4          0.2  setosa
2           4.7          3.2           1.3          0.2  setosa
3           4.6          3.1           1.5          0.2  setosa
4           5.0          3.6           1.4          0.2  setosa

Pandas

Wenn Sie nicht importieren möchten seaborn, aber dennoch auf die Beispieldatensätze zugreifen möchten , können Sie den Ansatz von @ andrewwowens für die Meeresgeborenen-Probendaten verwenden:

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

Beachten Sie, dass für die Beispieldatensätze, die kategoriale Spalten enthalten, der Spaltentyp geändert wurdesns.load_dataset() und das Ergebnis möglicherweise nicht dasselbe ist, wenn es direkt von der URL abgerufen wird. Die Iris und Tipps Beispieldatensätze sind auch in den Pandas verfügbar GitHub Repo hier .

R Beispieldatensätze

Da jeder Datensatz über gelesen werden kann pd.read_csv(), ist es möglich, auf alle Beispieldatensätze von R zuzugreifen, indem die URLs aus diesem R-Datensatz-Repository kopiert werden .

Zusätzliche Möglichkeiten zum Laden der R-Beispieldatensätze umfassen statsmodel

import statsmodels.api as sm

iris = sm.datasets.get_rdataset('iris').data

und PyDataset

from pydataset import data

iris = data('iris')

scikit-lernen

scikit-learn Gibt Beispieldaten als Numpy-Arrays und nicht als Pandas-Datenrahmen zurück.

from sklearn.datasets import load_iris

iris = load_iris()
# `iris.data` holds the numerical values
# `iris.feature_names` holds the numerical column names
# `iris.target` holds the categorical (species) values (as ints)
# `iris.target_names` holds the unique categorical names

Decke

Quilt ist ein Dataset-Manager, der zur Erleichterung der Dataset-Verwaltung erstellt wurde. Es enthält viele gängige Beispieldatensätze, z. B. mehrere aus dem uciml-Beispielrepository . Die Schnellstartseite zeigt, wie der Iris-Datensatz installiert und importiert wird:

# In your terminal
$ pip install quilt
$ quilt install uciml/iris

Nach der Installation eines Datasets kann lokal darauf zugegriffen werden. Dies ist daher die beste Option, wenn Sie offline mit den Daten arbeiten möchten.

import quilt.data.uciml.iris as ir

iris = ir.tables.iris()
   sepal_length  sepal_width  petal_length  petal_width        class
0           5.1          3.5           1.4          0.2  Iris-setosa
1           4.9          3.0           1.4          0.2  Iris-setosa
2           4.7          3.2           1.3          0.2  Iris-setosa
3           4.6          3.1           1.5          0.2  Iris-setosa
4           5.0          3.6           1.4          0.2  Iris-setosa

Quilt unterstützt auch die Versionierung von Datensätzen und enthält eine kurze Beschreibung jedes Datensatzes.

joelostblom
quelle
9
Sollte die Antwort nicht einfach NEIN sein, gibt es keine praktischen "Übungs" -Datensätze, die Sie mit Pandas laden können.
Giacomo
15

Das rpy2Modul ist dafür gemacht:

from rpy2.robjects import r, pandas2ri
pandas2ri.activate()

r['iris'].head()

ergibt

   Sepal.Length  Sepal.Width  Petal.Length  Petal.Width Species
1           5.1          3.5           1.4          0.2  setosa
2           4.9          3.0           1.4          0.2  setosa
3           4.7          3.2           1.3          0.2  setosa
4           4.6          3.1           1.5          0.2  setosa
5           5.0          3.6           1.4          0.2  setosa

Bis zu Pandas 0.19 können Sie die eigene rpySchnittstelle von Pandas verwenden:

import pandas.rpy.common as rcom
iris = rcom.load_data('iris')
print(iris.head())

ergibt

   Sepal.Length  Sepal.Width  Petal.Length  Petal.Width Species
1           5.1          3.5           1.4          0.2  setosa
2           4.9          3.0           1.4          0.2  setosa
3           4.7          3.2           1.3          0.2  setosa
4           4.6          3.1           1.5          0.2  setosa
5           5.0          3.6           1.4          0.2  setosa

rpy2bietet auch eine Möglichkeit , RObjekte in Python-Objekte zu konvertieren :

import pandas as pd
import rpy2.robjects as ro
import rpy2.robjects.conversion as conversion
from rpy2.robjects import pandas2ri
pandas2ri.activate()

R = ro.r

df = conversion.ri2py(R['mtcars'])
print(df.head())

ergibt

    mpg  cyl  disp   hp  drat     wt   qsec  vs  am  gear  carb
0  21.0    6   160  110  3.90  2.620  16.46   0   1     4     4
1  21.0    6   160  110  3.90  2.875  17.02   0   1     4     4
2  22.8    4   108   93  3.85  2.320  18.61   1   1     4     1
3  21.4    6   258  110  3.08  3.215  19.44   1   0     3     1
4  18.7    8   360  175  3.15  3.440  17.02   0   0     3     2
unutbu
quelle
1
Danke für den Vorschlag. Ich habe dies getan, aber es verstößt gegen die "Leichtigkeit", dass die Daten in R verfügbar sind. Es ist jedoch eine Lösung, die dies erledigt!
Canyon289
3
Hm? Was ist so schwer rcom.load_data('iris')?
Unutbu
Wahrscheinlich nichts, mir ist klar, dass ich vielleicht zu wählerisch bin. Ich schätze die Antwort!
Canyon289
1
Bitte beachte , dass pandas.rpywurde in 0,20 entfernt . Die Schnittstelle zu R rpy2ist die empfohlene Option.
Joelostblom
13

Jede öffentlich verfügbare CSV-Datei kann über ihre URL extrem schnell in Pandas geladen werden. Hier ist ein Beispiel für die Verwendung des Iris-Datasets, das ursprünglich aus dem UCI-Archiv stammt.

import pandas as pd

file_name = "https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csv"
df = pd.read_csv(file_name)
df.head()

Die Ausgabe hier ist der CSV-Dateikopf, den Sie gerade von der angegebenen URL geladen haben.

>>> df.head()
   sepal_length  sepal_width  petal_length  petal_width species
0           5.1          3.5           1.4          0.2  setosa
1           4.9          3.0           1.4          0.2  setosa
2           4.7          3.2           1.3          0.2  setosa
3           4.6          3.1           1.5          0.2  setosa
4           5.0          3.6           1.4          0.2  setosa

Eine denkwürdige kurze URL dafür ist https://j​.mp/iriscsv. Diese kurze URL funktioniert nur, wenn sie eingegeben wurde und nicht, wenn sie kopiert wurde.

andrewwowens
quelle
Die Website ist nicht ausgefallen. Überprüfen Sie archive.ics.uci.edu/ml/datasets/Iris für Beschreibung, oder laden iris.names
Sie