ฟังก์ชั่น 5 อันดับแรกของ Pandas ที่จำเป็นสำหรับ Data Scientists [2022]

เผยแพร่แล้ว: 2021-01-02

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