При использовании R удобно загружать "практические" наборы данных, используя
data(iris)
или
data(mtcars)
Есть что-то подобное для Панд? Я знаю, что могу загрузить любой другой метод, просто интересно, есть ли что-нибудь встроенное.
При использовании R удобно загружать "практические" наборы данных, используя
data(iris)
или
data(mtcars)
Есть что-то подобное для Панд? Я знаю, что могу загрузить любой другой метод, просто интересно, есть ли что-нибудь встроенное.
Ответы:
Поскольку я изначально написал этот ответ, я обновил его множеством способов, которые теперь доступны для доступа к образцам наборов данных в Python. Лично я предпочитаю использовать тот пакет, который уже использую (обычно seaborn или pandas). Если вам нужен автономный доступ, установка набора данных с 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 для выборки данных seaborn:
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
Обратите внимание, что типовые наборы данных, содержащие категориальные столбцы, имеют измененный тип столбца,sns.load_dataset()
и результат может быть другим, если получить его напрямую из URL-адреса. Образцы данных iris и tips также доступны в репозитории pandas на github здесь .
Так как любой набор данных можно считывать с помощью 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
возвращает образцы данных в виде массивов 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 . На странице быстрого запуска показано, как установить и импортировать набор данных диафрагмы:
# 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
Quilt также поддерживает управление версиями наборов данных и включает краткое описание каждого набора данных.
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
rcom.load_data('iris')
?
pandas.rpy
было удалено в версии 0.20 . Для взаимодействия с R rpy2
рекомендуется использовать этот вариант.
Любой общедоступный файл .csv можно очень быстро загрузить в pandas, используя его URL-адрес. Вот пример использования набора данных iris, изначально взятого из архива 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-адрес будет работать, только если он введен, а не скопирован.
iris.names