Pandalarda örnek veri kümeleri


Yanıtlar:


112

Bu cevabı orijinal olarak yazdığımdan beri, Python'daki örnek veri kümelerine erişmek için mevcut olan birçok yolla güncelledim. Kişisel olarak, halihazırda kullandığım pakete (genellikle deniz boğazı veya pandalar) bağlı kalma eğilimindeyim. Çevrimdışı erişime ihtiyacınız varsa, veri setini Quilt ile yüklemek tek seçenek gibi görünüyor.

Seaborn

Mükemmel çizim paketi seaborn, birkaç yerleşik örnek veri kümesine sahiptir.

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

Pandalar

İçe aktarmak istemiyor seabornancak yine de örnek veri kümelerine erişmek istiyorsanız , seaborn örnek verileri için @ andrewwowens'in yaklaşımını kullanabilirsiniz:

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

Kategorik sütunları içeren örnek veri kümelerinin sütun türlerinin tarafından değiştirildiğinisns.load_dataset() ve sonucun doğrudan url'den alınmasıyla aynı olmayabileceğini unutmayın. İris ve ipuçları örnek veri setleri de repo github pandalar mevcuttur burada .

R örnek veri kümeleri

Herhangi bir veri seti üzerinden okunabildiğinden pd.read_csv(), bu R veri seti havuzundan URL'leri kopyalayarak tüm R'nin örnek veri setlerine erişmek mümkündür .

R örnek veri kümelerini yüklemenin ek yolları şunları içerir: statsmodel

import statsmodels.api as sm

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

ve PyDataset

from pydataset import data

iris = data('iris')

scikit-öğrenmek

scikit-learn pandalar veri çerçevesi yerine örnek verileri numpy diziler olarak döndürür.

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

Yorgan

Quilt , veri kümesi yönetimini kolaylaştırmak için oluşturulmuş bir veri kümesi yöneticisidir. Bu gibi birçok ortak örnek veri kümelerini içerir birkaç dan uciml örnek depo . Hızlı başlangıç sayfası yükleme ve iris veri setini nasıl içe gösterileri:

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

Bir veri kümesi kurduktan sonra yerel olarak erişilebilir olduğundan, verilerle çevrimdışı çalışmak istiyorsanız bu en iyi seçenektir.

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

Yorgan aynı zamanda veri kümesi sürümlemesini destekler ve her veri kümesinin kısa bir açıklamasını içerir.


10
Cevap HAYIR olmamalı, pandalarla yükleyebileceğiniz kullanışlı bir "uygulama" veri kümesi yok.
Giacomo

15

rpy2Modül bunun için yapılır:

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

r['iris'].head()

verim

   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

Pandalar 0.19'a kadar pandaların kendi rpyarayüzünü kullanabilirsiniz:

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

verim

   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

rpy2ayrıca nesneleri Python nesnelerine dönüştürmek içinR bir yol sağlar :

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

verim

    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
Öneriniz için teşekkürler. Bunu yapıyordum ama verilerin R'de mevcut olma "kolaylığını" ihlal ediyor. Yine de yapılmasını sağlayan bir çözüm!
kanyon289

3
Hm? bu kadar zor olan ne rcom.load_data('iris')?
unutbu

Muhtemelen hiçbir şey, çok seçici davrandığımın farkındayım. Cevabınız için minnettarım!
canyon289

1
Not pandas.rpyedilmiştir 0.20 uzaklaştırıldı . R ile arayüz oluşturmak rpy2için önerilen seçenektir.
joelostblom

13

Herkese açık herhangi bir .csv dosyası, URL'si kullanılarak pandalara son derece hızlı bir şekilde yüklenebilir. Orijinal olarak UCI arşivinden alınan iris veri kümesini kullanan bir örnek.

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

Buradaki çıktı, verilen URL'den yeni yüklediğiniz .csv dosya başlığıdır.

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

Aynısı için akılda kalıcı bir kısa URL https://j​.mp/iriscsv. Bu kısa URL, kopyalanarak yapıştırılmamışsa, yalnızca yazılmışsa çalışacaktır.


Web sitesi çalışmıyor. Açıklama için archive.ics.uci.edu/ml/datasets/Iris'i kontrol edin veya indiriniris.names
zhazha

0

DataFrame'i test eden yerleşik pandalar çok kullanışlıdır.

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

diğer test DataFrame seçenekleri :

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.