Зразки наборів даних у Pandas


90

При використанні R зручно завантажувати "практичні" набори даних за допомогою

data(iris)

або

data(mtcars)

Чи є щось подібне для Pandas? Я знаю, що можу завантажувати будь-яким іншим методом, просто цікаво, чи є щось вбудоване.


Відповіді:


106

Оскільки я спочатку написав цю відповідь, я оновив її багатьма способами, які зараз доступні для доступу до зразків наборів даних у Python. Особисто я схильний дотримуватися будь-якої упаковки, яку я вже використовую (зазвичай морських народжень або панд). Якщо вам потрібен офлайн-доступ, встановлення набору даних за допомогою Quilt здається єдиним варіантом.

Морський народжений

У блискучому пакеті побудови графіків seabornє кілька вбудованих зразків наборів даних.

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

Панди

Якщо ви не хочете імпортувати seaborn, але все одно хочете отримати доступ до його зразків наборів даних , ви можете використовувати підхід @ andrewwowens для даних зразків морського народження:

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

Зверніть увагу, що у зразках наборів даних, що містять категоріальні стовпці, тип стовпця змінено на,sns.load_dataset() і результат може бути не однаковим, отримуючи його з URL-адреси безпосередньо. Зразки наборів даних райдужної оболонки і підказок також доступні в репо-програмі pandas github тут .

R вибірки наборів даних

Так як будь-який набір даних можна зчитувати з допомогою pd.read_csv(), можна отримати доступ прикладів наборів даних всіх R шляхом копіювання URL - адрес з цього набору даних R сховища .

Додаткові способи завантаження наборів даних зразків R включають statsmodel

import statsmodels.api as sm

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

і PyDataset

from pydataset import data

iris = data('iris')

scikit-learn

scikit-learn повертає зразкові дані як масиви numpy, а не як фрейм даних 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

Ковдра

Quilt - це менеджер наборів даних, створений для полегшення управління наборами даних. Він включає багато типових наборів даних, таких як кілька із сховища зразків uciml . На сторінці швидкого запуску показано, як встановити та імпортувати набір даних iris:

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

Після встановлення набору даних він доступний локально, тому це найкращий варіант, якщо ви хочете працювати з даними в автономному режимі.

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

Ковдра також підтримує встановлення версій набору даних та включає короткий опис кожного набору даних.


9
Якщо відповідь не повинна бути просто НІ, немає зручних наборів даних "для практики", які можна завантажувати пандами.
Джакомо,

15

rpy2Модуль зроблений для цього:

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

r['iris'].head()

врожайність

   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

До pandas 0,19 ви можете використовувати власний rpyінтерфейс pandas :

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

врожайність

   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також надає спосіб перетворення Rоб’єктів у об’єкти 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())

врожайність

    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
Дякую за пропозицію. Я робив це, але це порушує "легкість", що дані доступні в R. Це рішення, яке все ж робить це!
canyon289

3
Хм? в чому так важко rcom.load_data('iris')?
unutbu

Швидше за все нічого, я розумію, що, можливо, я занадто вибагливий. Я ціную відповідь!
canyon289

1
Зверніть увагу , що pandas.rpyбув вилучений у 0,20 . rpy2Рекомендованим варіантом є взаємодія з R.
joelostblom

13

Будь-який публічно доступний файл .csv можна надзвичайно швидко завантажити в панди, використовуючи його URL-адресу. Ось приклад використання набору даних райдужної оболонки, спочатку з архіву 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()

Результатом є заголовок файлу .csv, який ви щойно завантажили з вказаної 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

Запам'ятовується коротка URL-адреса для того самого https://j​.mp/iriscsv. Ця коротка URL-адреса працюватиме лише в тому випадку, якщо її введено, а не якщо вона скопійована.


Веб-сайт не працює. Перевірте для опису archive.ics.uci.edu/ml/datasets/Iris або завантажтеiris.names
жажа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.