Ejemplos de conjuntos de datos en Pandas

6 minutos de lectura

avatar de usuario
cañón289

Cuando se usa R, es útil cargar conjuntos de datos de “práctica” usando

data(iris)

o

data(mtcars)

¿Hay algo similar para Pandas? Sé que puedo cargar usando cualquier otro método, solo por curiosidad si hay algo incorporado.

  • Posible duplicado de ¿Hay algún conjunto de datos de ejemplo para Python?

    – un ben diferente

    11 de mayo de 2017 a las 7:48

avatar de usuario
joseblom

Dado que originalmente escribí esta respuesta, la actualicé con las muchas formas que ahora están disponibles para acceder a conjuntos de datos de muestra en Python. Personalmente, tiendo a quedarme con cualquier paquete que ya esté usando (generalmente seaborn o pandas). Si necesita acceso sin conexión, instalar el conjunto de datos con Quilt parece ser la única opción.

nacido en el mar

El paquete de trazado brillante seaborn tiene varios conjuntos de datos de muestra integrados.

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

Si no desea importar seabornpero todavía quiero acceder sus conjuntos de datos de muestrapuede usar el enfoque de @andrewwowens para los datos de muestra marinos:

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

Tenga en cuenta que los conjuntos de datos de muestra que contienen columnas categóricas tienen sus tipo de columna modificado por sns.load_dataset() y el resultado podría no ser el mismo al obtenerlo directamente de la URL. Los conjuntos de datos de muestra de iris y tips también están disponibles en el repositorio pandas github aquí.

Conjuntos de datos de muestra de R

Dado que cualquier conjunto de datos se puede leer a través de pd.read_csv()es posible acceder a todos los conjuntos de datos de muestra de R copiando las URL de este repositorio de conjuntos de datos R.

Otras formas de cargar los conjuntos de datos de ejemplo de R incluyen
statsmodel

import statsmodels.api as sm

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

y PyDataset

from pydataset import data

iris = data('iris')

scikit-aprender

scikit-learn devuelve datos de muestra como matrices numpy en lugar de un marco de datos de pandas.

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

Colcha

Colcha es un administrador de conjuntos de datos creado para facilitar la gestión de conjuntos de datos. Incluye muchos conjuntos de datos de muestra comunes, como
varios desde el repositorio de muestras uciml. los página de inicio rápido muestra cómo instalar e importar el conjunto de datos del iris:

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

Después de instalar un conjunto de datos, se puede acceder a él localmente, por lo que esta es la mejor opción si desea trabajar con los datos sin conexión.

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 también admite el control de versiones de conjuntos de datos e incluye un Breve descripción de cada conjunto de datos.

  • ¿No debería la respuesta ser simplemente NO? No hay conjuntos de datos útiles de “práctica” que pueda cargar con pandas.

    – Giacomo

    26 de abril de 2019 a las 11:31

  • Realmente deberías revisar la respuesta de @cheng10 a continuación

    – patricio

    7 mar a las 23:40

El DataFrame de prueba de pandas incorporado es muy conveniente.

hacerFrameMixedDataFrame():

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

otras opciones de prueba de DataFrame:

hacerDataFrame():

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

hacerTimeDataFrame():

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

  • Su respuesta está subestimada, aunque tal vez no sea exactamente lo que pedía la pregunta, lo que realmente quiero es una forma interactiva de obtener un marco de datos para jugar. ¡Gracias!

    – tomaszps

    27 de enero de 2021 a las 19:28

avatar de usuario
unutbu

los rpy2 El módulo está hecho para esto:

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

r['iris'].head()

rendimientos

   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

Hasta pandas 0.19 podrías usar los propios pandas rpy interfaz:

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

rendimientos

   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

rpy2 también proporciona una manera para convertir R objetos en objetos 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())

rendimientos

    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

  • Gracias por la sugerencia. Estaba haciendo esto, pero viola la “facilidad” de que los datos están disponibles en R. ¡Sin embargo, es una solución que lo hace!

    – cañón289

    09/02/2015 a las 19:39

  • ¿Hmm? que es tan dificil rcom.load_data('iris')?

    – unutbu

    9 de febrero de 2015 a las 19:59

  • Probablemente nada, me doy cuenta de que puedo estar siendo demasiado exigente. ¡Agradezco la respuesta!

    – cañón289

    9 de febrero de 2015 a las 21:43

  • Tenga en cuenta que pandas.rpy estaba eliminado en 0.20. Para interactuar con R, rpy2 es la opción recomendada.

    – joelostblom

    10 mayo 2017 a las 15:53

avatar de usuario
bestia_única

Cualquier archivo .csv disponible públicamente se puede cargar en pandas extremadamente rápido usando su URL. Aquí hay un ejemplo que usa el conjunto de datos de iris originalmente del archivo 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()

El resultado aquí es el encabezado del archivo .csv que acaba de cargar desde la URL dada.

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

Una URL corta memorable para el mismo es https://j​.mp/iriscsv. Esta URL corta funcionará solo si se escribe y no si se copia y pega.

¿Ha sido útil esta solución?