การแบ่งส่วนข้อมูลด้วย .loc และ .iloc

การจัดการข้อมูลด้วย pandas

Richie Cotton

Data Evangelist at DataCamp

การ slice ลิสต์

breeds = ["Labrador", "Poodle", 
          "Chow Chow", "Schnauzer", 
          "Labrador", "Chihuahua", 
          "St. Bernard"]
['Labrador',
 'Poodle',
 'Chow Chow',
 'Schnauzer',
 'Labrador',
 'Chihuahua',
 'St. Bernard']
breeds[2:5]
['Chow Chow', 'Schnauzer', 'Labrador']
breeds[:3]
['Labrador', 'Poodle', 'Chow Chow']
breeds[:]
['Labrador','Poodle','Chow Chow','Schnauzer',
 'Labrador','Chihuahua','St. Bernard']
การจัดการข้อมูลด้วย pandas

เรียงลำดับ index ก่อน slice

dogs_srt = dogs.set_index(["breed", "color"]).sort_index()
print(dogs_srt)
                      name  height_cm  weight_kg
breed       color                               
Chihuahua   Tan     Stella         18          2
Chow Chow   Brown     Lucy         46         22
Labrador    Black      Max         59         29
            Brown    Bella         56         25
Poodle      Black  Charlie         43         23
Schnauzer   Grey    Cooper         49         17
St. Bernard White   Bernie         77         74
การจัดการข้อมูลด้วย pandas

การ slice ระดับ index ภายนอก

dogs_srt.loc["Chow Chow":"Poodle"]
                    name  height_cm  weight_kg
breed     color                               
Chow Chow Brown     Lucy         46         22
Labrador  Black      Max         59         29
          Brown    Bella         56         25
Poodle    Black  Charlie         43         23

ค่าสุดท้าย "Poodle" ถูกรวมด้วย

ชุดข้อมูลทั้งหมด

                      name  height_cm  weight_kg
breed       color                               
Chihuahua   Tan     Stella         18          2
Chow Chow   Brown     Lucy         46         22
Labrador    Black      Max         59         29
            Brown    Bella         56         25
Poodle      Black  Charlie         43         23
Schnauzer   Grey    Cooper         49         17
St. Bernard White   Bernie         77         74
การจัดการข้อมูลด้วย pandas

การ slice ระดับ index ภายในแบบผิดวิธี

dogs_srt.loc["Tan":"Grey"]
Empty DataFrame
Columns: [name, height_cm, weight_kg]
Index: []

ชุดข้อมูลทั้งหมด

                      name  height_cm  weight_kg
breed       color                               
Chihuahua   Tan     Stella         18          2
Chow Chow   Brown     Lucy         46         22
Labrador    Black      Max         59         29
            Brown    Bella         56         25
Poodle      Black  Charlie         43         23
Schnauzer   Grey    Cooper         49         17
St. Bernard White   Bernie         77         74
การจัดการข้อมูลด้วย pandas

การ slice ระดับ index ภายในแบบถูกวิธี

dogs_srt.loc[
    ("Labrador", "Brown"):("Schnauzer", "Grey")]
                    name  height_cm  weight_kg
breed     color                               
Labrador  Brown    Bella         56         25
Poodle    Black  Charlie         43         23
Schnauzer Grey    Cooper         49         17

ชุดข้อมูลทั้งหมด

                      name  height_cm  weight_kg
breed       color                               
Chihuahua   Tan     Stella         18          2
Chow Chow   Brown     Lucy         46         22
Labrador    Black      Max         59         29
            Brown    Bella         56         25
Poodle      Black  Charlie         43         23
Schnauzer   Grey    Cooper         49         17
St. Bernard White   Bernie         77         74
การจัดการข้อมูลด้วย pandas

การ slice คอลัมน์

dogs_srt.loc[:, "name":"height_cm"]
                      name  height_cm
breed       color                    
Chihuahua   Tan     Stella         18
Chow Chow   Brown     Lucy         46
Labrador    Black      Max         59
            Brown    Bella         56
Poodle      Black  Charlie         43
Schnauzer   Grey    Cooper         49
St. Bernard White   Bernie         77

ชุดข้อมูลทั้งหมด

                      name  height_cm  weight_kg
breed       color                               
Chihuahua   Tan     Stella         18          2
Chow Chow   Brown     Lucy         46         22
Labrador    Black      Max         59         29
            Brown    Bella         56         25
Poodle      Black  Charlie         43         23
Schnauzer   Grey    Cooper         49         17
St. Bernard White   Bernie         77         74
การจัดการข้อมูลด้วย pandas

Slice สองครั้ง

dogs_srt.loc[
    ("Labrador", "Brown"):("Schnauzer", "Grey"), 
    "name":"height_cm"]
                    name  height_cm
breed     color                    
Labrador  Brown    Bella         56
Poodle    Black  Charlie         43
Schanuzer Grey    Cooper         49

ชุดข้อมูลทั้งหมด

                      name  height_cm  weight_kg
breed       color                               
Chihuahua   Tan     Stella         18          2
Chow Chow   Brown     Lucy         46         22
Labrador    Black      Max         59         29
            Brown    Bella         56         25
Poodle      Black  Charlie         43         23
Schnauzer   Grey    Cooper         49         17
St. Bernard White   Bernie         77         74
การจัดการข้อมูลด้วย pandas

วันของสุนัข

dogs = dogs.set_index("date_of_birth").sort_index()
print(dogs)
                  name        breed  color  height_cm  weight_kg
date_of_birth                                                   
2011-12-11      Cooper    Schanuzer   Grey         49         17
2013-07-01       Bella     Labrador  Brown         56         25
2014-08-25        Lucy    Chow Chow  Brown         46         22
2015-04-20      Stella    Chihuahua    Tan         18          2
2016-09-16     Charlie       Poodle  Black         43         23
2017-01-20         Max     Labrador  Black         59         29
2018-02-27      Bernie  St. Bernard  White         77         74
การจัดการข้อมูลด้วย pandas

การ slice ด้วยวันที่

# Get dogs with date_of_birth between 2014-08-25 and 2016-09-16
dogs.loc["2014-08-25":"2016-09-16"]
                  name      breed  color  height_cm  weight_kg
date_of_birth                                                 
2014-08-25        Lucy  Chow Chow  Brown         46         22
2015-04-20      Stella  Chihuahua    Tan         18          2
2016-09-16     Charlie     Poodle  Black         43         23
การจัดการข้อมูลด้วย pandas

การ slice ด้วยวันที่บางส่วน

# Get dogs with date_of_birth between 2014-01-01 and 2016-12-31
dogs.loc["2014":"2016"]
                 name      breed  color  height_cm  weight_kg
date_of_birth                                                
2014-08-25       Lucy  Chow Chow  Brown         46         22
2015-04-20     Stella  Chihuahua    Tan         18          2
2016-09-16    Charlie     Poodle  Black         43         23
การจัดการข้อมูลด้วย pandas

การ subset ด้วยหมายเลขแถว/คอลัมน์

print(dogs.iloc[2:5, 1:4])
       breed  color  height_cm
2  Chow Chow  Brown         46
3  Schnauzer   Grey         49
4   Labrador  Black         59

ชุดข้อมูลทั้งหมด

      name        breed  color  height_cm  weight_kg
0    Bella     Labrador  Brown         56         25
1  Charlie       Poodle  Black         43         23
2     Lucy    Chow Chow  Brown         46         22
3   Cooper    Schnauzer   Grey         49         17
4      Max     Labrador  Black         59         29
5   Stella    Chihuahua    Tan         18          2
6   Bernie  St. Bernard  White         77         74
การจัดการข้อมูลด้วย pandas

มาฝึกกันเถอะ!

การจัดการข้อมูลด้วย pandas

Preparing Video For Download...