Bộ dữ liệu mẫu trong Pandas


90

Khi sử dụng R, rất tiện để tải các tập dữ liệu "thực hành" bằng

data(iris)

hoặc là

data(mtcars)

Có điều gì đó tương tự cho Gấu trúc không? Tôi biết tôi có thể tải bằng bất kỳ phương pháp nào khác, chỉ cần tò mò xem có nội dung gì không.


Câu trả lời:


106

Kể từ khi tôi viết câu trả lời này ban đầu, tôi đã cập nhật nó bằng nhiều cách hiện có sẵn để truy cập các tập dữ liệu mẫu bằng Python. Cá nhân tôi có xu hướng gắn bó với bất kỳ gói nào tôi đang sử dụng (thường là cá biển hoặc gấu trúc). Nếu bạn cần truy cập ngoại tuyến, cài đặt tập dữ liệu bằng Quilt dường như là lựa chọn duy nhất.

Seaborn

Gói biểu đồ tuyệt vời seaborncó một số tập dữ liệu mẫu được tích hợp sẵn.

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

Gấu trúc

Nếu bạn không muốn nhập seaborn, nhưng vẫn muốn truy cập các tập dữ liệu mẫu của nó , bạn có thể sử dụng phương pháp của @ andrewwowens cho dữ liệu mẫu sơ sinh:

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

Lưu ý rằng tập dữ liệu mẫu chứa các cột phân loại có loại cột của chúng được sửa đổi bởisns.load_dataset() và kết quả có thể không giống nhau bằng cách lấy trực tiếp từ url. Bộ dữ liệu mẫu mống mắt và mẹo cũng có sẵn trong repo github của gấu trúc tại đây .

R bộ dữ liệu mẫu

Vì bất kỳ tập dữ liệu nào cũng có thể được đọc qua pd.read_csv(), nên có thể truy cập tất cả các tập dữ liệu mẫu của R bằng cách sao chép URL từ kho lưu trữ tập dữ liệu R này .

Các cách bổ sung để tải tập dữ liệu mẫu R bao gồm statsmodel

import statsmodels.api as sm

iris = sm.datasets.get_rdataset('iris').data

PyDataset

from pydataset import data

iris = data('iris')

scikit-học

scikit-learn trả về dữ liệu mẫu dưới dạng mảng numpy thay vì khung dữ liệu gấu trúc.

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

May chăn

Quilt là trình quản lý tập dữ liệu được tạo ra để hỗ trợ quản lý tập dữ liệu. Nó bao gồm nhiều bộ dữ liệu mẫu chung, chẳng hạn như một số bộ từ kho lưu trữ mẫu uciml . Các trang khởi động nhanh chương trình làm thế nào để cài đặt và nhập khẩu các bộ dữ liệu iris:

# In your terminal
$ pip install quilt
$ quilt install uciml/iris

Sau khi cài đặt tập dữ liệu, nó có thể truy cập cục bộ, vì vậy đây là tùy chọn tốt nhất nếu bạn muốn làm việc với dữ liệu ngoại tuyến.

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 cũng hỗ trợ lập phiên bản tập dữ liệu và bao gồm mô tả ngắn gọn về từng tập dữ liệu.


9
Không nên câu trả lời chỉ là KHÔNG, không có bộ dữ liệu "thực hành" tiện dụng nào mà bạn có thể tải với gấu trúc.
Giacomo

15

Các rpy2mô-đun được làm cho điều này:

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

r['iris'].head()

hoa lợi

   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

Lên đến gấu trúc 0,19, bạn có thể sử dụng rpygiao diện riêng của gấu trúc :

import pandas.rpy.common as rcom
iris = rcom.load_data('iris')
print(iris.head())

hoa lợi

   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

rpy2cũng cung cấp một cách để chuyển đổi Rcác đối tượng thành các đối tượng 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())

hoa lợi

    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
Cảm ơn đã gợi ý. Tôi đã làm điều này nhưng nó vi phạm sự "dễ dàng" mà dữ liệu có sẵn trong R. Tuy nhiên, đó là một giải pháp có thể thực hiện được!
canyon289,

3
Hm? những gì là khó khăn như vậy về rcom.load_data('iris')?
unutbu

Có vẻ như không có gì, tôi nhận ra tôi có thể đã quá kén chọn. Tôi đánh giá cao câu trả lời!
canyon289,

1
Lưu ý rằng pandas.rpyđã bị loại bỏ trong 0,20 . Để giao tiếp với R, rpy2là tùy chọn được khuyến nghị.
joelostblom

13

Mọi tệp .csv có sẵn công khai đều có thể được tải vào gấu trúc cực kỳ nhanh chóng bằng cách sử dụng URL của nó. Đây là một ví dụ sử dụng tập dữ liệu mống mắt ban đầu từ kho lưu trữ 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()

Đầu ra ở đây là tiêu đề tệp .csv mà bạn vừa tải từ URL đã cho.

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

Một URL ngắn đáng nhớ cho cùng là https://j​.mp/iriscsv. URL ngắn này sẽ chỉ hoạt động nếu nó được nhập và không hoạt động nếu nó bị sao chép.


Trang web không bị sập. Kiểm tra archive.ics.uci.edu/ml/datasets/Iris cho mô tả, hoặc tải vềiris.names
zhazha
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.