使用R时,使用以下方法方便地加载“练习”数据集
data(iris)
要么
data(mtcars)
熊猫有类似的东西吗?我知道我可以使用任何其他方法加载,只是好奇是否有内置函数。
Answers:
自从我最初写这个答案以来,我已经用许多可用于在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中找到。
由于可以通过读取任何数据集pd.read_csv()
,因此可以通过复制R数据集存储库中的URL来访问所有R的样本数据集。
加载R个样本数据集的其他方式包括
statsmodel
import statsmodels.api as sm
iris = sm.datasets.get_rdataset('iris').data
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
被子还支持数据集版本控制,并包括每个数据集的简短描述。
该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
rcom.load_data('iris')
?
任何公开可用的.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仅在输入时才有效,而在复制粘贴时不起作用。
iris.names