Pandas中的示例数据集

can*_*289 56 python pandas

使用R时,使用它可以方便地加载"练习"数据集

data(iris)
Run Code Online (Sandbox Code Playgroud)

要么

data(mtcars)
Run Code Online (Sandbox Code Playgroud)

熊猫有类似的东西吗?我知道我可以使用任何其他方法加载,只是好奇是否内置任何东西

joe*_*lom 68

自从我最初编写这个答案以来,我已经用现在可用于访问Python中的示例数据集的许多方法更新了它.就个人而言,我倾向于坚持使用我已经使用的任何包(通常是seaborn或pandas).如果您需要离线访问,则使用Quilt安装数据集似乎是唯一的选择.

Seaborn

精彩的绘图包seaborn有几个内置的样本数据集.

import seaborn as sns

iris = sns.load_dataset('iris')
iris.head()
Run Code Online (Sandbox Code Playgroud)
   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
Run Code Online (Sandbox Code Playgroud)

熊猫

如果您不想导入seaborn,但仍想访问其样本数据集,则可以使用@ andrewwowens的方法获取seaborn样本数据:

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

请注意,包含分类列的示例数据集的列类型已修改,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
Run Code Online (Sandbox Code Playgroud)

PyDataset

from pydataset import data

iris = data('iris')
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

被子

Quilt是一个数据集管理器,用于促进数据集管理.它包括许多常见的样本数据集,例如来自uciml样本库的多个样本数据集 .在快速启动页面演示了如何安装并导入虹膜数据集:

# In your terminal
$ pip install quilt
$ quilt install uciml/iris
Run Code Online (Sandbox Code Playgroud)

安装数据集后,可以在本地访问它,因此如果您希望脱机处理数据,这是最佳选择.

import quilt.data.uciml.iris as ir

iris = ir.tables.iris()
Run Code Online (Sandbox Code Playgroud)
   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
Run Code Online (Sandbox Code Playgroud)

Quilt还支持数据集版本控制,并包含每个数据集的简短描述.

  • 答案不应该是否,没有方便的“实践”数据集可以用熊猫加载。 (3认同)

unu*_*tbu 14

rpy2模块是为此而制作的:

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

r['iris'].head()
Run Code Online (Sandbox Code Playgroud)

产量

   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
Run Code Online (Sandbox Code Playgroud)

最多pandas 0.19你可以使用pandas自己的rpy界面:

import pandas.rpy.common as rcom
iris = rcom.load_data('iris')
print(iris.head())
Run Code Online (Sandbox Code Playgroud)

产量

   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
Run Code Online (Sandbox Code Playgroud)

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())
Run Code Online (Sandbox Code Playgroud)

产量

    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
Run Code Online (Sandbox Code Playgroud)

  • 嗯?`rcom.load_data('iris')`有什么难的? (3认同)

and*_*ens 11

任何公开可用的.csv文件都可以使用其URL非常快速地加载到pandas中.以下是使用存储在UCI存档中的虹膜数据集的示例.

import pandas as pd

file_name = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

df = pd.read_csv(file_name)

df.head()
Run Code Online (Sandbox Code Playgroud)

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

>>> df.head()
   5.1  3.5  1.4  0.2  Iris-setosa
0  4.9  3.0  1.4  0.2  Iris-setosa
1  4.7  3.2  1.3  0.2  Iris-setosa
2  4.6  3.1  1.5  0.2  Iris-setosa
3  5.0  3.6  1.4  0.2  Iris-setosa
4  5.4  3.9  1.7  0.4  Iris-setosa
Run Code Online (Sandbox Code Playgroud)

  • 该网站已关闭. (5认同)

小智 11

内置的pandas测试DataFrame非常方便。

makeMixedDataFrame():

In [22]: import pandas as pd

In [23]: pd.util.testing.makeMixedDataFrame()
Out[23]:
     A    B     C          D
0  0.0  0.0  foo1 2009-01-01
1  1.0  1.0  foo2 2009-01-02
2  2.0  0.0  foo3 2009-01-05
3  3.0  1.0  foo4 2009-01-06
4  4.0  0.0  foo5 2009-01-07
Run Code Online (Sandbox Code Playgroud)

其他测试 DataFrame 选项?

makeDataFrame():

In [24]: pd.util.testing.makeDataFrame().head()
Out[24]:
                   A         B         C         D
acKoIvMLwE  0.121895 -0.781388  0.416125 -0.105779
jc6UQeOO1K -0.542400  2.210908 -0.536521 -1.316355
GlzjJESv7a  0.921131 -0.927859  0.995377  0.005149
CMhwowHXdW  1.724349  0.604531 -1.453514 -0.289416
ATr2ww0ctj  0.156038  0.597015  0.977537 -1.498532
Run Code Online (Sandbox Code Playgroud)

makeMissingDataframe()?

In [27]: pd.util.testing.makeMissingDataframe().head()
Out[27]:
                   A         B         C         D
qyXLpmp1Zg -1.034246  1.050093       NaN       NaN
v7eFDnbQko  0.581576  1.334046 -0.576104 -0.579940
fGiibeTEjx -1.166468 -1.146750 -0.711950 -0.205822
Q8ETSRa6uY  0.461845 -2.112087  0.167380 -0.466719
7XBSChaOyL -1.159962 -1.079996  1.585406 -1.411159
Run Code Online (Sandbox Code Playgroud)

makeTimeDataFrame()?

In [28]: pd.util.testing.makeTimeDataFrame().head()
Out[28]:
                   A         B         C         D
2000-01-03 -0.641226  0.912964  0.308781  0.551329
2000-01-04  0.364452 -0.722959  0.322865  0.426233
2000-01-05  1.042171  0.005285  0.156562  0.978620
2000-01-06  0.749606 -0.128987 -0.312927  0.481170
2000-01-07  0.945844 -0.854273  0.935350  1.165401
Run Code Online (Sandbox Code Playgroud)

  • 你的答案被低估了——尽管也许这并不完全是问题所要求的,但我真正想要的是一种交互方式来获取数据框。谢谢! (3认同)
  • @heng10 这个答案已被弃用。 (3认同)
  • 该包已移至“pandas._testing”。有关示例,请参阅[文档](https://pandas.pydata.org/docs/user_guide/reshaping.html?highlight=maketimedataframe)。 (3认同)