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