Contoh kumpulan data di Pandas

93

Saat menggunakan R, berguna untuk memuat set data "latihan" menggunakan

data(iris)

atau

data(mtcars)

Apakah ada yang serupa untuk Panda? Saya tahu saya dapat memuat menggunakan metode lain, hanya ingin tahu apakah ada sesuatu di dalamnya.

ngarai 289
sumber
2
Kemungkinan duplikat dari Apakah ada contoh kumpulan data untuk Python?
ben yang berbeda

Jawaban:

113

Sejak saya pertama kali menulis jawaban ini, saya telah memperbaruinya dengan banyak cara yang sekarang tersedia untuk mengakses kumpulan data sampel dengan Python. Secara pribadi, saya cenderung tetap menggunakan paket apa pun yang sudah saya gunakan (biasanya seaborn atau panda). Jika Anda membutuhkan akses offline, menginstal kumpulan data dengan Quilt tampaknya menjadi satu-satunya pilihan.

Yg keturunan dr laut

Paket plotting yang brilian seabornmemiliki beberapa kumpulan data sampel bawaan.

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

Panda

Jika Anda tidak ingin mengimpor seaborn, tetapi masih ingin mengakses kumpulan data sampelnya , Anda dapat menggunakan pendekatan @ andrewwowens untuk data sampel seaborn:

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

Perhatikan bahwa contoh kumpulan data yang berisi kolom kategorikal memiliki jenis kolom yang dimodifikasi olehsns.load_dataset() dan hasilnya mungkin tidak sama dengan mendapatkannya dari url secara langsung. Kumpulan data sampel iris dan tip juga tersedia di repo github panda di sini .

R contoh dataset

Karena kumpulan data apa pun dapat dibaca pd.read_csv(), maka dimungkinkan untuk mengakses semua kumpulan data sampel R dengan menyalin URL dari repositori kumpulan data R ini .

Cara tambahan untuk memuat kumpulan data sampel R termasuk statsmodel

import statsmodels.api as sm

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

dan PyDataset

from pydataset import data

iris = data('iris')

scikit-learn

scikit-learn mengembalikan data sampel sebagai larik numpy daripada bingkai data panda.

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

Selimut

Quilt adalah pengelola dataset yang dibuat untuk memfasilitasi pengelolaan dataset. Ini mencakup banyak kumpulan data sampel umum, seperti beberapa dari repositori sampel uciml . The cepat halaman awal menunjukkan cara menginstal dan impor iris kumpulan data:

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

Setelah memasang kumpulan data, itu dapat diakses secara lokal, jadi ini adalah opsi terbaik jika Anda ingin bekerja dengan data secara offline.

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 juga mendukung pembuatan versi set data dan menyertakan deskripsi singkat dari setiap set data.

joelostblom
sumber
10
Bukankah jawabannya adalah TIDAK, tidak ada kumpulan data "latihan" praktis yang dapat Anda muat dengan panda.
Giacomo
15

The rpy2modul dibuat untuk ini:

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

r['iris'].head()

hasil

   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

Hingga pandas 0.19 Anda dapat menggunakan rpyantarmuka panda sendiri :

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

hasil

   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

rpy2juga menyediakan cara untuk mengubah Robjek menjadi objek 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())

hasil

    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
unutbu
sumber
1
Terima kasih atas sarannya. Saya melakukan ini tetapi melanggar "kemudahan" bahwa data tersedia di R. Ini adalah solusi yang menyelesaikannya!
canyon289
3
Hm? apa yang sulit rcom.load_data('iris')?
unutbu
Mungkin tidak ada, saya sadar saya mungkin terlalu pilih-pilih. Saya menghargai jawabannya!
canyon289
1
Catatan yang pandas.rpytelah dihapus pada 0.20 . Untuk berinteraksi dengan R, rpy2adalah opsi yang disarankan.
joelostblom
13

File .csv yang tersedia untuk umum dapat dimuat ke panda dengan sangat cepat menggunakan URL-nya. Berikut adalah contoh penggunaan dataset iris yang berasal dari arsip 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()

Keluarannya di sini adalah tajuk file .csv yang baru saja Anda muat dari URL yang diberikan.

>>> 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 singkat yang mudah diingat untuk hal yang sama adalah https://j​.mp/iriscsv. URL singkat ini hanya akan berfungsi jika diketik dan tidak jika disalin-tempel.

andrewwowens
sumber
Situs web tidak down. Periksa archive.ics.uci.edu/ml/datasets/Iris untuk deskripsi, atau unduhiris.names
zhazha
0

DataFrame pengujian pandas builtin sangat nyaman.

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

opsi DataFrame pengujian lainnya :

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

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

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