ฟังก์ชั่น 5 อันดับแรกของ Pandas ที่จำเป็นสำหรับ Data Scientists [2022]
เผยแพร่แล้ว: 2021-01-02Pandas เป็นห้องสมุดที่มีคนใช้และเป็นที่ชื่นชอบมากที่สุดเมื่อพูดถึง Data Science และ Data Analysis ด้วย Python อะไรทำให้มันพิเศษ? ในบทช่วยสอนนี้ เราจะพูดถึง 5 ฟังก์ชันที่ทำให้ Pandas เป็นเครื่องมือที่มีประโยชน์อย่างยิ่งในชุดเครื่องมือของ Data Scientist
ในตอนท้ายของบทช่วยสอนนี้ คุณจะมีความรู้เกี่ยวกับฟังก์ชันด้านล่างใน Pandas และวิธีใช้งานสำหรับแอปพลิเคชันของคุณ:
- value_counts
- groupby
- loc และ iloc
- มีเอกลักษณ์เฉพาะตัว
- ตัดและ qcut
สารบัญ
ฟังก์ชันแพนด้ายอดนิยมสำหรับนักวิทยาศาสตร์ข้อมูล
1. value_counts()
ฟังก์ชัน value_counts() ของ Pandas ใช้เพื่อแสดงจำนวนองค์ประกอบที่ไม่ซ้ำทั้งหมดในคอลัมน์ของ dataframe
คำแนะนำอย่างมืออาชีพ: เพื่อสาธิต ฉันจะใช้ชุดข้อมูลไททานิค
ในตอนนี้ เพื่อค้นหาจำนวนคลาสในคุณลักษณะ Embarked เราสามารถเรียกใช้ฟังก์ชัน value_counts:
รถไฟ[ 'ลงมือ' ].value_counts() |
#ผลลัพธ์: เอ ส 644 ซี 168 คิว 77 |
นอกจากนี้ หากตัวเลขเหล่านี้ไม่สมเหตุสมผล คุณสามารถดูเปอร์เซ็นต์แทนได้:
รถไฟ[ 'ลงมือ' ].value_counts(normalize= True ) |
#ผลลัพธ์: S 0.724409 C 0.188976 คิว 0.086614 |
นอกจากนี้ value_counts ไม่ได้พิจารณา NaN หรือค่าที่ขาดหายไปโดยค่าเริ่มต้น ซึ่งเป็นสิ่งสำคัญมากในการตรวจสอบ ในการทำเช่นนั้น คุณสามารถตั้งค่าพารามิเตอร์ dropna เป็นเท็จได้
รถไฟ[ 'ลงมือ' ].value_counts(dropna= False ) |
#ผลลัพธ์: เอ ส 644 ซี 168 คิว 77 น่าน 2 |
2. group_by()
ด้วย Pandas group_by เราสามารถแบ่งและจัดกลุ่มดาต้าเฟรมของเราตามคอลัมน์บางคอลัมน์เพื่อให้สามารถดูรูปแบบและรายละเอียดในข้อมูลได้ Group_by ประกอบด้วย 3 ขั้นตอนหลัก: การแยก การนำไปใช้ และการรวม
train.groupby( 'เพศ' ).mean() |
เอาท์พุท:
อย่างที่คุณเห็น เราจัดกลุ่มกรอบข้อมูลตามคุณลักษณะ 'เพศ' และรวบรวมโดยใช้วิธีการ
คุณยังสามารถพล็อตโดยใช้การแสดงภาพในตัวของ Pandas:
df.groupby( 'เพศ' ).sum().plot(ชนิด= 'แถบ' ) |
นอกจากนี้เรายังสามารถจัดกลุ่มโดยใช้คุณสมบัติหลายอย่างสำหรับการแยกตามลำดับชั้น
df.groupby([ 'เซ็กส์' , 'รอด' ] )[ 'รอด' ].count() |
ต้องอ่าน: คำถามสัมภาษณ์แพนด้า
3. loc และ iloc
การสร้างดัชนีใน Pandas เป็นหนึ่งในการดำเนินการขั้นพื้นฐานที่สุด และวิธีที่ดีที่สุดที่จะทำคือการใช้ loc หรือ iloc “Loc” ย่อมาจาก Location และ “i” หมายถึงตำแหน่งที่จัดทำดัชนี กล่าวอีกนัยหนึ่ง เมื่อคุณต้องการสร้างดัชนี dataframe โดยใช้ชื่อหรือป้ายกำกับของคอลัมน์/แถว คุณจะต้องใช้ loc และเมื่อคุณต้องการสร้างดัชนีคอลัมน์หรือแถวโดยใช้ตำแหน่ง คุณจะต้องใช้ฟังก์ชัน iloc มาดู loc กันก่อน
train.loc[ 2 , 'เซ็กส์' ] |
การดำเนินการข้างต้นทำให้เรามีองค์ประกอบของดัชนีแถว 2 และ 'เพศ' ของคอลัมน์ ในทำนองเดียวกัน หากคุณต้องการค่าทั้งหมดของคอลัมน์เรื่องเพศ ให้ทำดังนี้
train.loc[:, 'เพศ' ] |
นอกจากนี้ คุณสามารถกรองหลายคอลัมน์ได้ เช่น:
train.loc[:, 'เพศ' , 'ลงมือ' ] |
คุณยังสามารถกรองโดยใช้เงื่อนไขบูลีนภายใน loc เช่น:
train.loc[train.age >= 25 ] |
หากต้องการดูเฉพาะบางแถว คุณสามารถแบ่ง dataframe โดยใช้ loc:
train.loc[ 100 : 200 ] |
นอกจากนี้ คุณสามารถแบ่ง dataframe บนแกนคอลัมน์เป็น:
train.loc[:, 'sex' : 'ค่าโดยสาร' ] |
การดำเนินการข้างต้นจะแบ่ง dataframe จากคอลัมน์ 'sex' เป็น 'fare' สำหรับทุกแถว
เอาล่ะ มาต่อกันที่ iloc กัน iloc จะทำดัชนีโดยใช้หมายเลขดัชนีหรือตำแหน่งเท่านั้น คุณสามารถแบ่ง dataframes เช่น:
train.iloc[ 100 : 200 , 2 : 9 ] |
การดำเนินการข้างต้นจะแบ่งแถวจาก 100 เป็น 199 และคอลัมน์ 2 ถึง 8 ในทำนองเดียวกัน หากคุณต้องการแบ่งข้อมูลในแนวนอน คุณสามารถทำได้ดังนี้
train.iloc[: 300 , :] |
4. unique() และ nunique()
ใช้ Pandas ที่ไม่ซ้ำใครเพื่อรับค่าพิเศษทั้งหมดจากฟีเจอร์ใดๆ ส่วนใหญ่จะใช้เพื่อรับหมวดหมู่ในลักษณะหมวดหมู่ในข้อมูล Unique แสดงค่าที่ไม่ซ้ำกันทั้งหมดรวมถึง NaN โดยถือว่ามันเป็นคุณค่าที่ไม่เหมือนใคร ลองดู:
รถไฟ[ 'เพศ' ].unique() |
#ผลลัพธ์: [ 'หญิง' ' ' ชาย ' ] |
อย่างที่เราเห็น มันให้คุณค่าพิเศษแก่เราในคุณลักษณะ 'เพศ'
ในทำนองเดียวกัน คุณสามารถตรวจสอบจำนวนค่าที่ไม่ซ้ำได้ เนื่องจากอาจมีค่าที่ไม่ซ้ำกันจำนวนมากในคุณลักษณะบางอย่าง

รถไฟ[ 'เซ็กส์' ].nuique() |
#ผลลัพธ์: 2 |
อย่างไรก็ตาม คุณควรจำไว้ว่า nunique() ไม่ได้ถือว่า NaN เป็นค่าที่ไม่ซ้ำกัน หากมี NaN ในข้อมูลของคุณ คุณจะต้องส่งพารามิเตอร์ dropna เป็น False เพื่อให้แน่ใจว่า Pandas ให้การนับรวมถึง NaN ด้วย
รถไฟ[ 'เพศ' ].nuique(dropna= เท็จ ) |
#ผลลัพธ์: 3 |
5. cut() และ qcut()
การตัด Pandas ใช้เพื่อเก็บค่าในช่วงต่างๆ เพื่อแยกคุณสมบัติ มาดำดิ่งลงไปกันเถอะ Binning หมายถึงการแปลงคุณลักษณะที่เป็นตัวเลขหรือต่อเนื่องเป็นชุดค่าที่ไม่ต่อเนื่อง โดยยึดตามช่วงของค่าที่ต่อเนื่องกัน สิ่งนี้มีประโยชน์เมื่อคุณต้องการดูแนวโน้มโดยพิจารณาจากช่วงของจุดข้อมูล
มาทำความเข้าใจกับตัวอย่างเล็กๆ น้อยๆ กัน
สมมติ เรามีคะแนนสำหรับเด็ก 7 คน ตั้งแต่ 0-100 ตอนนี้ เราสามารถกำหนดคะแนนของเด็กทุกคนให้กับ "ถังขยะ" เฉพาะได้
df = pd.Dataframe (ข้อมูล = { 'Name' : [ 'Ck' , 'Ron' , 'Mat' , 'Josh' , 'Tim' , 'SypherPK' , 'Dew' , 'Vin' ], 'เครื่องหมาย' :[ 37 , 91 , 66 , 42 , 99 , 81 , 45, 71 ] }) df[ 'marks_bin' ] = pd.cut(df[ 'Marks' ], bins=[ 0 , 50 , 70 , 100 ], labels=[ 1 , 2 , 3 ]) |
จากนั้นเราสามารถผนวกเอาท์พุตเป็นคุณลักษณะใหม่ได้และคุณลักษณะเครื่องหมายก็ลดลงได้ dataframe ใหม่มีลักษณะดังนี้:
#ผลลัพธ์: เครื่องหมายชื่อmarks_bin 0 Ck 37 1 1 รอน 91 3 2 แมท 66 2 3 จอช 42 1 4 ทิม 99 3 5 SypherPK 81 3 6 น้ำค้าง 45 1 7 วิน 71 3 |
ดังนั้น เมื่อฉันพูดว่า bins = [ 0 , 50 , 70 , 100 ] หมายความว่ามี 3 ช่วง:
0 ถึง 50 สำหรับถัง 1
51 ถึง 70 สำหรับ bin 2 และ
71 ถึง 100 เป็นของถังขยะ 3
ดังนั้น ตอนนี้คุณลักษณะของเราจึงไม่มีเครื่องหมาย ยกเว้นช่วงหรือช่องที่เครื่องหมายสำหรับนักเรียนคนนั้นอยู่
คล้ายกับ cut() Pandas ยังมีฟังก์ชั่นพี่ชายที่เรียกว่า qcut( ) Pandas qcut ใช้จำนวนของควอนไทล์ และแบ่งจุดข้อมูลไปยังแต่ละถังตามการกระจายข้อมูล ดังนั้นเราจึงสามารถเปลี่ยนฟังก์ชันการตัดด้านบนเป็น qcut ได้:
df[ 'marks_bin' ] = pd.qcut(df[ 'Marks' ], q= 3 , labels=[ 1 , 2 , 3 ]) |
ในการดำเนินการข้างต้น เราบอกให้ Pandas ตัดฟีเจอร์ออกเป็น 3 ส่วนเท่าๆ กันและกำหนดป้ายกำกับให้พวกมัน ผลลัพธ์ออกมาเป็น:
เครื่องหมายชื่อmarks_bin 0 Ck 37 1 1 รอน 91 3 2 แมท 66 2 3 จอช 42 1 4 ทิม 99 3 5 SypherPK 81 3 6 น้ำค้าง 45 1 7 วิน 71 2 |
สังเกตว่าค่าสุดท้ายเปลี่ยนจาก 3 เป็น 2 อย่างไร
อ่านเพิ่มเติม: Pandas Dataframe Astype
ก่อนที่คุณจะไป
เราเห็นฟังก์ชัน Pandas ที่ใช้กันมากที่สุด แต่สิ่งเหล่านี้ไม่ใช่สิ่งเดียวที่มีความสำคัญ และเราขอแนะนำให้คุณเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันที่ใช้เป็นส่วนใหญ่ของ Pandas นี่เป็นแนวทางที่ดีและมีประสิทธิภาพ เนื่องจากคุณอาจไม่ได้ใช้ฟังก์ชันทั้งหมดที่ Pandas มี แต่มีเพียงไม่กี่ฟังก์ชันเท่านั้น
เรียนรู้ หลักสูตรวิทยาศาสตร์ข้อมูล จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
ทำไมห้องสมุด Pandas ถึงได้รับความนิยม?
ห้องสมุดนี้ค่อนข้างเป็นที่นิยมในหมู่นักวิทยาศาสตร์ข้อมูลและนักวิเคราะห์ข้อมูล เหตุผลก็คือการรองรับรูปแบบไฟล์จำนวนมากและคุณสมบัติที่หลากหลายเพื่อจัดการกับข้อมูลที่แยกออกมา สามารถรวมเข้ากับไลบรารีและแพ็คเกจอื่น ๆ เช่น NumPy ได้อย่างง่ายดาย
ไลบรารีอันทรงพลังนี้มีฟังก์ชันที่มีประโยชน์มากมายสำหรับการจัดการชุดข้อมูลขนาดใหญ่ในลักษณะที่ยืดหยุ่น เมื่อคุณเชี่ยวชาญแล้ว คุณสามารถทำงานที่ยอดเยี่ยมได้อย่างง่ายดายด้วยโค้ดเพียงไม่กี่บรรทัด
ฟังก์ชันผสานคืออะไรและทำไมจึงใช้
ฟังก์ชันผสานเป็นฟังก์ชันพิเศษของ data frame Pandas ที่ใช้ในการผสานหลายแถวหรือคอลัมน์ของ 2 data frames เป็นการดำเนินการเข้าร่วมหน่วยความจำสูงและคล้ายกับฐานข้อมูลเชิงสัมพันธ์ คุณสามารถใช้ on = ชื่อคอลัมน์ เพื่อรวมกรอบข้อมูลในคอลัมน์ทั่วไป
คุณสามารถอัปเดต left_on = ชื่อคอลัมน์ หรือ right_on = ชื่อคอลัมน์ เพื่อจัดแนวตารางโดยใช้คอลัมน์จากกรอบข้อมูลด้านซ้ายหรือด้านขวาเป็นคีย์
นอกจากห้องสมุด Pandas แล้ว ห้องสมุด Python อื่นๆ สำหรับวิทยาศาสตร์ข้อมูลมีอะไรบ้าง
นอกเหนือจากไลบรารี Pandas แล้ว ยังมีไลบรารี Python อีกจำนวนมากที่ถือว่าเป็นไลบรารี่ที่ดีที่สุดสำหรับวิทยาศาสตร์ข้อมูล ซึ่งรวมถึง PySpark, TensorFlow, Matplotlib, Scikit Learn, SciPy และอีกมากมาย แต่ละอันใช้กันอย่างแพร่หลายสำหรับคุณสมบัติและฟังก์ชั่นที่เป็นเอกลักษณ์และน่าทึ่ง
ห้องสมุดทุกแห่งมีความสำคัญในตัวเอง เช่น SciKit Learn มักใช้เมื่อคุณต้องจัดการกับข้อมูลทางสถิติ นอกเหนือจากการวิเคราะห์ข้อมูลแล้ว คุณยังสามารถสร้างแดชบอร์ดและรายงานแบบภาพโดยใช้ฟังก์ชันที่จัดทำโดยไลบรารีที่น่าทึ่งเหล่านี้