【问题标题】:Are there any example data sets for Python?是否有 Python 的示例数据集?
【发布时间】:2013-05-10 20:56:24
【问题描述】:

为了快速测试、调试、创建可移植示例和基准测试,R 提供了大量数据集(在 Base R datasets 包中)。 R 提示符下的命令library(help="datasets") 描述了近 100 个历史数据集,每个数据集都有相关的描述和元数据。

Python 有这样的东西吗?

【问题讨论】:

标签: python dataset


【解决方案1】:

您可以使用rpy2 包从 Python 访问所有 R 数据集。

设置界面:

>>> from rpy2.robjects import r, pandas2ri
>>> def data(name): 
...    return pandas2ri.ri2py(r[name])

然后使用可用数据集的任何数据集名称调用data()(就像在R 中一样)

>>> df = data('iris')
>>> df.describe()
       Sepal.Length  Sepal.Width  Petal.Length  Petal.Width
count    150.000000   150.000000    150.000000   150.000000
mean       5.843333     3.057333      3.758000     1.199333
std        0.828066     0.435866      1.765298     0.762238
min        4.300000     2.000000      1.000000     0.100000
25%        5.100000     2.800000      1.600000     0.300000
50%        5.800000     3.000000      4.350000     1.300000
75%        6.400000     3.300000      5.100000     1.800000
max        7.900000     4.400000      6.900000     2.500000

要查看可用数据集的列表以及每个数据集的描述:

>>> print(r.data())

注意:rpy2 需要安装R 并设置R_HOME 变量,并且pandas 也必须安装。

更新

我刚刚创建了PyDataset,这是一个简单的模块,可以让从 Python 加载数据集像R 一样简单(它不需要安装R,只需要安装pandas)。

要开始使用它,请安装模块:

$ pip install pydataset

然后只需加载您想要的任何数据集(目前大约有 757 个数据集可用):

from pydataset import data

titanic = data('titanic')

【讨论】:

    【解决方案2】:

    我最初在相关问题 Sample Datasets in Pandas 上发布了此内容,但由于它与 pandas 之外的相关,因此我也将其包含在此处。

    现在有许多方法可用于访问 Python 中的示例数据集。就个人而言,我倾向于坚持使用我的任何包裹 已经在使用(通常是 seaborn 或 pandas)。如果您需要离线访问, 使用 Quilt 安装数据集似乎是唯一的选择。

    Seaborn

    出色的绘图包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,但仍想访问its sample data sets,您可以从其URL读取seaborn示例数据:

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

    请注意,包含分类列的样本数据集有其column type modified by sns.load_dataset(),结果可能不一样 通过直接从 url 获取它。 iris 和tips 样本数据集也是 可在 pandas github repo here 中获得。

    R 样本数据集

    由于可以通过pd.read_csv() 读取任何数据集,因此可以访问所有 通过从this R data set repository 复制 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 是为方便而创建的数据集管理器 数据集管理。它包括许多常见的样本数据集,例如 several 来自 uciml sample repositoryquick start page 显示如何安装 并导入 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
    

    Quilt 还支持数据集版本控制,并包含每个数据集的 short description

    【讨论】:

      【解决方案3】:

      具体来说,以@tmthydvnprt 为例:

      from sklearn import datasets
      iris = datasets.load_iris()
      

      可以通过iris.data调用实际的数据集。

      http://scikit-learn.org/stable/datasets/

      运行 Python 3.5

      【讨论】:

        【解决方案4】:

        Scikit-Learn 库中还有可用的数据集。

        from sklearn import datasets
        

        这个包中有多个数据集。一些玩具数据集是:

        load_boston()          Load and return the boston house-prices dataset (regression).
        load_iris()            Load and return the iris dataset (classification).
        load_diabetes()        Load and return the diabetes dataset (regression).
        load_digits([n_class]) Load and return the digits dataset (classification).
        load_linnerud()        Load and return the linnerud dataset (multivariate regression).
        

        【讨论】:

          【解决方案5】:

          MyMVPA 是另一个可以轻松访问数据库的模块。您可以查看下面的链接。

          >>> from mvpa2.tutorial_suite import *
          >>> data = [[  1,  1, -1],
          ...         [  2,  0,  0],
          ...         [  3,  1,  1],
          ...         [  4,  0, -1]]
          >>> ds = Dataset(data)
          >>> ds.shape
          (4, 3)
          >>> len(ds)
          4
          

          链接示例

          http://www.pymvpa.org/tutorial_datasets.html

          【讨论】:

            【解决方案6】:

            根据 Joran 的评论,我找到了 statsmodels 模块,它提供了自己的 datasets 包。 online documentation 展示了如何导入 R 中可用的数据集的示例:

            import statsmodels.api as sm
            duncan_prestige = sm.datasets.get_rdataset("Duncan", "car")
            print duncan_prestige.__doc__
            

            【讨论】:

            • ValueError: Dataset Duncan was not found. statsmodels 0.9
            猜你喜欢
            • 2021-11-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-06-26
            • 2023-03-22
            • 2015-04-09
            • 2013-11-03
            相关资源
            最近更新 更多