Set di dati di esempio in Pandas


Risposte:


113

Da quando ho scritto originariamente questa risposta, l'ho aggiornata con i molti modi ora disponibili per accedere a set di dati di esempio in Python. Personalmente, tendo a restare fedele a qualunque pacchetto sto già usando (di solito seaborn o panda). Se hai bisogno dell'accesso offline, l'installazione del set di dati con Quilt sembra essere l'unica opzione.

Seaborn

Il brillante pacchetto di plottaggio seabornha diversi set di dati di esempio incorporati.

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

Panda

Se non si desidera importare seaborn, ma si desidera comunque accedere ai suoi set di dati di esempio , è possibile utilizzare l'approccio di @ andrewwowens per i dati di esempio di Seaborn:

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

Tieni presente che i set di dati di esempio contenenti colonne categoriali hanno il loro tipo di colonna modificato dasns.load_dataset() e il risultato potrebbe non essere lo stesso recuperandolo direttamente dall'URL. I set di dati di esempio di iris e suggerimenti sono disponibili anche nel repository github pandas qui .

Set di dati di esempio R.

Dal momento che ogni insieme di dati può essere letta tramite pd.read_csv(), è possibile accedere a set di dati di esempio tutti di R copiando gli URL da questo repository insieme di dati R .

Altri modi per caricare i set di dati di esempio R includono statsmodel

import statsmodels.api as sm

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

e PyDataset

from pydataset import data

iris = data('iris')

scikit-learn

scikit-learn restituisce dati di esempio come array numpy piuttosto che come frame di dati Panda.

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

Trapunta

Quilt è un gestore di set di dati creato per facilitare la gestione dei set di dati. Include molti set di dati di esempio comuni, come diversi dal repository di esempio uciml . La pagina di avvio rapido mostra come installare e importare il set di dati iris:

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

Dopo aver installato un set di dati, è accessibile localmente, quindi questa è l'opzione migliore se si desidera lavorare con i dati offline.

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 supporta anche il controllo delle versioni dei set di dati e include una breve descrizione di ciascun set di dati.


10
La risposta non dovrebbe essere semplicemente NO, non esiste un pratico set di dati "pratico" che puoi caricare con i panda.
Giacomo

15

Il rpy2modulo è fatto per questo:

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

r['iris'].head()

rendimenti

   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

Fino a panda 0.19 puoi usare l' rpyinterfaccia di panda :

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

rendimenti

   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

rpy2fornisce anche un modo per convertire gli Roggetti in oggetti Python :

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())

rendimenti

    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

1
Grazie per il suggerimento. Lo stavo facendo ma viola la "facilità" che i dati sono disponibili in R. È una soluzione che lo fa fare però!
canyon 289

3
Hm? cosa c'è di così difficile rcom.load_data('iris')?
unutbu

Probabilmente niente, mi rendo conto che potrei essere troppo esigente. Apprezzo la risposta!
canyon 289

1
Nota che è pandas.rpystato rimosso in 0.20 . Per interfacciarsi con R, rpy2è l'opzione consigliata.
joelostblom

13

Qualsiasi file .csv disponibile pubblicamente può essere caricato in panda molto rapidamente utilizzando il suo URL. Ecco un esempio che utilizza il set di dati iris originariamente dall'archivio UCI.

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()

L'output qui è l'intestazione del file .csv che hai appena caricato dall'URL specificato.

>>> 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

Un breve URL memorabile per lo stesso è https://j​.mp/iriscsv. Questo URL breve funzionerà solo se viene digitato e non se viene copiato e incollato.


Il sito web non è inattivo. Controlla archive.ics.uci.edu/ml/datasets/Iris per la descrizione o scaricairis.names
zhazha

0

I panda integrati che testano DataFrame è molto conveniente.

makeMixedDataFrame ():

In [22]: import pandas as pd

In [23]: pd.util.testing.makeMixedDataFrame()
Out[23]:
     A    B     C          D
0  0.0  0.0  foo1 2009-01-01
1  1.0  1.0  foo2 2009-01-02
2  2.0  0.0  foo3 2009-01-05
3  3.0  1.0  foo4 2009-01-06
4  4.0  0.0  foo5 2009-01-07

altre opzioni di test DataFrame :

makeDataFrame ():

In [24]: pd.util.testing.makeDataFrame().head()
Out[24]:
                   A         B         C         D
acKoIvMLwE  0.121895 -0.781388  0.416125 -0.105779
jc6UQeOO1K -0.542400  2.210908 -0.536521 -1.316355
GlzjJESv7a  0.921131 -0.927859  0.995377  0.005149
CMhwowHXdW  1.724349  0.604531 -1.453514 -0.289416
ATr2ww0ctj  0.156038  0.597015  0.977537 -1.498532

makeMissingDataframe () :

In [27]: pd.util.testing.makeMissingDataframe().head()
Out[27]:
                   A         B         C         D
qyXLpmp1Zg -1.034246  1.050093       NaN       NaN
v7eFDnbQko  0.581576  1.334046 -0.576104 -0.579940
fGiibeTEjx -1.166468 -1.146750 -0.711950 -0.205822
Q8ETSRa6uY  0.461845 -2.112087  0.167380 -0.466719
7XBSChaOyL -1.159962 -1.079996  1.585406 -1.411159

makeTimeDataFrame () :

In [28]: pd.util.testing.makeTimeDataFrame().head()
Out[28]:
                   A         B         C         D
2000-01-03 -0.641226  0.912964  0.308781  0.551329
2000-01-04  0.364452 -0.722959  0.322865  0.426233
2000-01-05  1.042171  0.005285  0.156562  0.978620
2000-01-06  0.749606 -0.128987 -0.312927  0.481170
2000-01-07  0.945844 -0.854273  0.935350  1.165401
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.