熊猫中的样本数据集


Answers:


103

自从我最初写这个答案以来,我已经用许多可用于在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 repo中找到

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

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

被子还支持数据集版本控制,并包括每个数据集的简短描述


9
答案不应该是否,没有可以用熊猫加载的方便的“实践”数据集。
Giacomo

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

在熊猫0.19之前,您可以使用熊猫自己的rpy界面:

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

可能什么也没有,我意识到我可能太挑剔了。感谢您的回答!
canyon289

1
注意在0.20中已将pandas.rpy删除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()

这里的输出是您刚刚从给定URL加载的.csv文件头。

>>> 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
zhazha
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.