ชุดข้อมูลตัวอย่างใน Pandas


93

เมื่อใช้ R จะสะดวกในการโหลดชุดข้อมูล "การปฏิบัติ" โดยใช้

data(iris)

หรือ

data(mtcars)

นุ่นมีอะไรคล้าย ๆ กันไหม? ฉันรู้ว่าฉันสามารถโหลดได้โดยใช้วิธีอื่นแค่อยากรู้ว่ามีอะไรอยู่ในตัวหรือไม่


คำตอบ:


113

เนื่องจากฉันเขียนคำตอบนี้ในตอนแรกฉันได้อัปเดตด้วยหลายวิธีที่ตอนนี้สามารถเข้าถึงชุดข้อมูลตัวอย่างใน 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 โดยตรง ม่านตาและเคล็ดลับในชุดข้อมูลตัวอย่างนอกจากนี้ยังมีในนุ่น GitHub repo ที่นี่

R ตัวอย่างชุดข้อมูล

ตั้งแต่ชุดข้อมูลใด ๆ ที่สามารถอ่านผ่านทางpd.read_csv()มันเป็นไปได้ที่จะเข้าถึงทั้งหมดของ R ชุดข้อมูลตัวอย่างโดยการคัดลอก URL ที่จากR พื้นที่เก็บข้อมูลชุดนี้

วิธีเพิ่มเติมในการโหลดชุดข้อมูลตัวอย่าง R ได้แก่ statsmodel

import statsmodels.api as sm

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

และ PyDataset

from pydataset import data

iris = data('iris')

วิทย์ - เรียน

scikit-learn ส่งคืนข้อมูลตัวอย่างเป็นอาร์เรย์ numpy แทนที่จะเป็นกรอบข้อมูลแพนด้า

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

Quilt ยังรองรับการกำหนดเวอร์ชันของชุดข้อมูลและมีคำอธิบายสั้น ๆของแต่ละชุดข้อมูล


10
คำตอบไม่ควรเป็นแค่ไม่ใช่ไม่มีชุดข้อมูล "แบบฝึกหัด" ที่มีประโยชน์ที่คุณสามารถโหลดด้วยแพนด้าได้
Giacomo

15

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

คุณสามารถใช้rpyอินเทอร์เฟซของแพนด้าได้มากถึง 0.19 :

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

1
ขอบคุณสำหรับคำแนะนำ ฉันกำลังทำสิ่งนี้ แต่มันละเมิด "ความง่าย" ที่ข้อมูลมีอยู่ใน R มันเป็นวิธีแก้ปัญหาที่ทำให้มันสำเร็จ!
canyon289

3
หืม? มันยากตรงrcom.load_data('iris')ไหน?
unutbu

ไม่มีอะไรเลยฉันรู้ว่าฉันอาจจู้จี้จุกจิกเกินไป ฉันขอขอบคุณคำตอบ!
canyon289

1
โปรดทราบว่าpandas.rpyถูกถอดออกใน 0.20 ในการเชื่อมต่อกับ R rpy2เป็นตัวเลือกที่แนะนำ
joelostblom

13

ไฟล์. 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()

ผลลัพธ์ที่นี่เป็นส่วนหัวของไฟล์. csv ที่คุณเพิ่งโหลดจาก URL ที่กำหนด

>>> 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 แบบสั้นนี้จะใช้งานได้ก็ต่อเมื่อมีการพิมพ์และไม่คัดลอกมาวาง


เว็บไซต์ไม่ได้ลง ตรวจสอบarchive.ics.uci.edu/ml/datasets/Irisสำหรับคำอธิบายหรือดาวน์โหลดiris.names
zhazha

0

การทดสอบ 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

ตัวเลือก 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

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.