Przykładowe zbiory danych w Pandach

Odpowiedzi:

103

Ponieważ pierwotnie napisałem tę odpowiedź, zaktualizowałem ją na wiele sposobów, które są teraz dostępne, aby uzyskać dostęp do przykładowych zestawów danych w Pythonie. Osobiście mam tendencję do trzymania się dowolnego pakietu, z którego już korzystam (zwykle jest to poroże morskie lub pandy). Jeśli potrzebujesz dostępu w trybie offline, instalacja zestawu danych za pomocą Quilt wydaje się być jedyną opcją.

Seaborn

Doskonały pakiet do drukowania seabornma kilka wbudowanych przykładowych zestawów danych.

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

Pandy

Jeśli nie chcesz importować seaborn, ale nadal chcesz uzyskać dostęp do jego przykładowych zestawów danych , możesz użyć podejścia @ andrewwowens do przykładowych danych z porostów morskich:

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

Zwróć uwagę, że przykładowe zestawy danych zawierające kolumny kategorialne mają zmodyfikowany typ kolumny przez,sns.load_dataset() a wynik może nie być taki sam, jeśli zostanie pobrany bezpośrednio z adresu URL. Przykładowe zestawy danych tęczówki i końcówek są również dostępne w repozytorium github pandas tutaj .

Przykładowe zestawy danych R.

Ponieważ każdy zbiór danych można odczytać za pośrednictwem pd.read_csv()możliwe jest, aby uzyskać dostęp do przykładowych zestawów danych wszystkie R poprzez kopiowanie adresów URL z tym R zbioru danych repozytorium .

Dodatkowe sposoby ładowania przykładowych zestawów danych języka R obejmują statsmodel

import statsmodels.api as sm

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

i PyDataset

from pydataset import data

iris = data('iris')

scikit-learn

scikit-learn zwraca przykładowe dane jako tablice numpy, a nie ramkę danych pandy.

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

Kołdra

Quilt to menedżer zbiorów danych stworzony w celu ułatwienia zarządzania zbiorem danych. Zawiera wiele typowych przykładowych zestawów danych, takich jak kilka z repozytorium próbek uciml . Strona szybkiego startu pokazuje, jak zainstalować i zaimportować zestaw danych tęczówki:

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

Po zainstalowaniu zestawu danych jest on dostępny lokalnie, więc jest to najlepsza opcja, jeśli chcesz pracować z danymi w trybie 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 obsługuje również wersjonowanie zestawów danych i zawiera krótki opis każdego zestawu danych.

joelostblom
źródło
9
Jeśli odpowiedź nie brzmi po prostu NIE, nie ma przydatnych „ćwiczeniowych” zbiorów danych, które można by załadować za pomocą pand.
Giacomo
15

rpy2Moduł jest wykonany z tego:

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

r['iris'].head()

plony

   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

Do pandy 0.19 możesz używać własnego rpyinterfejsu pand :

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

plony

   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

rpy2zapewnia również sposób konwertowania Robiektów na obiekty Pythona :

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

plony

    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
źródło
1
Dzięki za sugestię. Robiłem to, ale narusza to „łatwość”, że dane są dostępne w R. Jest to jednak rozwiązanie, które to robi!
canyon289
3
Hm? co jest takiego trudnego rcom.load_data('iris')?
unutbu
Prawdopodobnie nic, zdaję sobie sprawę, że jestem zbyt wybredna. Doceniam odpowiedź!
canyon289
1
Zauważ, że pandas.rpyzostało usunięte w 0.20 . Aby połączyć się z R, rpy2jest zalecaną opcją.
joelostblom
13

Każdy publicznie dostępny plik .csv można bardzo szybko załadować do pandy za pomocą jego adresu URL. Oto przykład wykorzystujący zestaw danych tęczówki pochodzący z archiwum 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()

Dane wyjściowe to nagłówek pliku .csv, który właśnie załadowałeś z podanego adresu URL.

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

Niezapomniany krótki adres URL do tego samego to https://j​.mp/iriscsv. Ten krótki adres URL będzie działał tylko wtedy, gdy zostanie wpisany, a nie, jeśli zostanie skopiowany.

andrewwowens
źródło
Witryna nie działa. Sprawdź opis na archive.ics.uci.edu/ml/datasets/Iris lub pobierziris.names
zhazha