Pandas read_csv() พร้อมตัวอย่าง

นำเข้า CSV ใน Pandas

ในระหว่างบทช่วยสอน TensorFlow คุณจะใช้ชุดข้อมูลสำหรับผู้ใหญ่ มักใช้กับงานการจำแนกประเภท มีอยู่ใน URL นี้ https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

ข้อมูลจะถูกจัดเก็บในรูปแบบ CSV ชุดข้อมูลนี้ประกอบด้วยตัวแปรตามหมวดหมู่แปดตัว:

ชุดข้อมูลนี้ประกอบด้วยตัวแปรหมวดหมู่ 8 รายการ:

  • ชั้นเรียน
  • การศึกษา
  • สมรส
  • อาชีพ
  • ความสัมพันธ์
  • แข่ง
  • เพศ
  • พื้นเมือง_ประเทศ

และตัวแปรต่อเนื่อง 6 ตัว:

  • อายุ
  • Fnlwgt
  • การศึกษา_num
  • ทุน_กำไร
  • เงินทุน_ขาดทุน
  • ชั่วโมง_สัปดาห์

วิธี Pandas read_csv()

หากต้องการนำเข้าชุดข้อมูล CSV คุณสามารถใช้ออบเจ็กต์ pd.read_csv() อาร์กิวเมนต์พื้นฐานภายในคือ:

Pandas read_csv() ไวยากรณ์

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • เส้นทางไฟล์หรือบัฟเฟอร์: เส้นทางหรือ URL พร้อมข้อมูล
  • ก.ย.=', ': กำหนดตัวคั่นที่จะใช้
  • `ชื่อ=ไม่มี`: ตั้งชื่อคอลัมน์ หากชุดข้อมูลมีสิบคอลัมน์ คุณจะต้องส่งชื่อสิบชื่อ
  • `index_col=ไม่มี`: ถ้าใช่ คอลัมน์แรกจะถูกใช้เป็นดัชนีแถว
  • `สเปซเริ่มต้น=เท็จ`: ข้ามช่องว่างหลังตัวคั่น

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ read_csv() โปรดตรวจสอบเอกสารอย่างเป็นทางการ:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

Pandas read_csv() ตัวอย่าง

## Import csv
import pandas as pd
## Define path data
COLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital',
           'occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss',
           'hours_week', 'native_country', 'label']
PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
df_train = pd.read_csv(PATH,
                       skipinitialspace=True,
                       names = COLUMNS,
                       index_col=False)
df_train.shape

Output:

(32561, 15)

Pandas groupby () วิธีการ

วิธีง่ายๆ ในการดูข้อมูลคือการใช้เมธอด groupby เมธอดนี้สามารถช่วยคุณสรุปข้อมูลตามกลุ่มได้ ด้านล่างนี้เป็นรายการเมธอดที่ใช้ได้กับเมธอด groupby()

  • นับ: นับ
  • นาที: นาที
  • สูงสุด: สูงสุด
  • หมายความว่า: หมายความว่า
  • มัธยฐาน: มัธยฐาน
  • ส่วนเบี่ยงเบนมาตรฐาน: SDT
  • ฯลฯ

ภายใน groupby() คุณสามารถใช้คอลัมน์ที่คุณต้องการใช้เมธอดได้

มาดูการจัดกลุ่มเดียวกับชุดข้อมูลสำหรับผู้ใหญ่กันดีกว่า คุณจะได้รับค่าเฉลี่ยของตัวแปรต่อเนื่องทั้งหมดตามประเภทของรายได้ เช่น มากกว่า 50 หรือต่ำกว่า 50:

df_train.groupby(['label']).mean()
ฉลาก อายุ Fnlwgt การศึกษา_num ทุน_กำไร เงินทุน_ขาดทุน ชั่วโมง_สัปดาห์
<=50K 36.783738 190340.86517 9.595065 148.752468 53.142921 38.840210
> 50K 44.249841 188005.00000 11.611657 4006.142456 195.001530 45.473026

คุณสามารถรับอายุขั้นต่ำตามประเภทของครัวเรือน:

df_train.groupby(['label'])['age'].min()
label
<=50K    17
>50K     19
Name: age, dtype: int64

คุณสามารถจัดกลุ่มตามคอลัมน์ต่างๆ ได้ ตัวอย่างเช่น คุณสามารถรับกำไรจากการลงทุนสูงสุดตามประเภทครัวเรือนและสถานะการสมรส

df_train.groupby(['label', 'marital'])['capital_gain'].max()				
label  marital              
<=50K  Divorced                 34095
       Married-AF-spouse         2653
       Married-civ-spouse       41310
       Married-spouse-absent     6849
       Never-married            34095
       Separated                 7443
       Widowed                   6849
>50K   Divorced                 99999
       Married-AF-spouse         7298
       Married-civ-spouse       99999
       Married-spouse-absent    99999
       Never-married            99999
       Separated                99999
       Widowed                  99999
Name: capital_gain, dtype: int64

คุณสามารถสร้างพล็อตตาม groupby ได้ วิธีหนึ่งคือใช้พล็อตหลังการจัดกลุ่ม

หากต้องการสร้างพล็อตเรื่องที่ยอดเยี่ยมยิ่งขึ้น คุณจะใช้ unstack() หลัง Mean() เพื่อให้คุณมีดัชนีหลายระดับเดียวกัน หรือคุณรวมค่าตามรายได้ที่ต่ำกว่า 50k และสูงกว่า 50k ในกรณีนี้ โครงเรื่องจะมีสองกลุ่มแทนที่จะเป็น 14 (2*7)

ถ้าคุณใช้ Jupyter สมุดบันทึกอย่าลืมเพิ่ม %matplotlib inline มิฉะนั้น จะไม่มีการแสดงกราฟ

%matplotlib inline
df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()
df_plot

ตัวอย่างวิธี Pandas groupby()

สรุป

  • หากต้องการนำเข้าชุดข้อมูล CSV เข้ามา นุ่นคุณสามารถใช้อ็อบเจ็กต์ pd.read_csv()
  • วิธี groupby() สามารถช่วยคุณสรุปข้อมูลตามกลุ่มได้
  • คุณสามารถจัดกลุ่มตามคอลัมน์ต่างๆ ได้ ตัวอย่างเช่น คุณสามารถรับกำไรจากการลงทุนสูงสุดตามประเภทครัวเรือนและสถานะการสมรส