วิธีค้นหาดาต้าเฟรมของ Pandas
มุมมองของนักวิทยาศาสตร์ข้อมูลเกี่ยวกับฟังก์ชัน Python ที่เหมือน SQL
By แมทธิว พริซีบีลา, นักวิทยาศาสตร์ข้อมูลอาวุโสที่ Favor Delivery
ภาพถ่ายโดย บรูซ ฮอง on Unsplash [1]
สารบัญ
- บทนำ
- หลายเงื่อนไข
- การรวมหลายคอลัมน์เฉพาะเจาะจง
- สรุป
- อ้างอิง
บทนำ
ไม่ว่าคุณจะเปลี่ยนจากวิศวกรข้อมูล/นักวิเคราะห์ข้อมูล หรือต้องการเป็นนักวิทยาศาสตร์ข้อมูลที่มีประสิทธิภาพมากขึ้น การสืบค้น dataframe ของคุณสามารถพิสูจน์ได้ว่าเป็นวิธีการที่มีประโยชน์ในการส่งคืนแถวเฉพาะที่คุณต้องการ สิ่งสำคัญคือต้องทราบว่ามีฟังก์ชันการสืบค้นเฉพาะสำหรับแพนด้าซึ่งมีชื่ออย่างเหมาะสม query
. อย่างไรก็ตาม ฉันจะพูดถึงวิธีอื่นๆ ที่คุณสามารถเลียนแบบการสืบค้น การกรอง และการรวมข้อมูลของคุณแทน เราจะนำเสนอสถานการณ์หรือคำถามทั่วไปที่คุณจะถามกับข้อมูลของคุณ แทนที่จะใช้ SQL เราจะนำเสนอด้วย Python ในย่อหน้าด้านล่าง ฉันจะสรุปวิธีง่ายๆ บางอย่างในการสืบค้นแถวสำหรับ dataframe ของ pandas ด้วยภาษาการเขียนโปรแกรม Python
หลายเงื่อนไข
ข้อมูลตัวอย่าง ภาพหน้าจอจากผู้แต่ง [2]
ในฐานะนักวิทยาศาสตร์ข้อมูลหรือนักวิเคราะห์ข้อมูล เราต้องการส่งคืนแถวข้อมูลที่เฉพาะเจาะจง หนึ่งในสถานการณ์เหล่านี้คือตำแหน่งที่คุณต้องการใช้เงื่อนไขหลายข้อ ทั้งหมดนี้อยู่ในบรรทัดโค้ดเดียวกัน เพื่อแสดงตัวอย่างของฉัน ฉันได้สร้างข้อมูลตัวอย่างปลอมเกี่ยวกับชื่อและนามสกุล รวมถึงเพศและวันเกิดที่เกี่ยวข้อง ข้อมูลนี้แสดงไว้ด้านบนในภาพหน้าจอ
ตัวอย่างหลายเงื่อนไขจะตอบคำถามเฉพาะเจาะจงเป็นหลัก เช่นเดียวกับเมื่อคุณใช้ SQL คำถามคือ เปอร์เซ็นต์ของข้อมูลของเราเป็นเพศชาย OR ผู้ที่เกิดระหว่างปี 2010 ถึง 2021
นี่คือรหัสที่จะแก้คำถามนั้น (มีหลายวิธีในการตอบคำถามนี้ แต่นี่คือวิธีเฉพาะของฉันในการทำสิ่งนี้):
print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)
เพื่อให้เห็นภาพโค้ดนี้ได้ดีขึ้น ฉันได้รวมภาพหน้าจอของโค้ดเดียวกันจากด้านบนนี้ไว้ด้วย พร้อมด้วยผลลัพธ์/ผลลัพธ์ คุณยังสามารถใช้เงื่อนไขเหล่านี้เพื่อส่งกลับแถวตามจริง แทนที่จะรับเศษส่วนหรือเปอร์เซ็นต์ของแถวจากแถวทั้งหมด
รหัสเงื่อนไข ภาพหน้าจอโดยผู้เขียน [3]
นี่คือลำดับคำสั่งที่เราดำเนินการ:
- กลับแถวด้วยชาย
Gender
- รวมไฟล์ OR ฟังก์ชัน
|
- กลับแถวของ
Birthdate
> 2010 และ 2021 - รวมทั้งหมดเข้าด้วยกัน แล้วหารด้วยจำนวนแถวทั้งหมด
อย่างที่คุณเห็น โค้ดนี้คล้ายกับสิ่งที่คุณเห็นใน SQL โดยส่วนตัวฉันคิดว่ามันง่ายกว่าในแพนด้าเพราะมันใช้โค้ดน้อยกว่าได้ ในขณะเดียวกันก็สามารถมองเห็นโค้ดทั้งหมดด้วยสายตาได้ในที่เดียวโดยไม่ต้องเลื่อนขึ้นลง (แต่รูปแบบนี้เป็นเพียงความชอบของฉัน).
การรวมหลายคอลัมน์เฉพาะเจาะจง
ผลการรวม dataframe ภาพหน้าจอโดยผู้เขียน [4]
เราอาจเคยเห็นวิธีการรวม dataframes เข้าด้วยกันในบทช่วยสอนอื่นๆ ดังนั้นฉันจึงต้องการเพิ่มวิธีการพิเศษที่ฉันไม่เคยเห็นมาก่อน ซึ่งเป็นการผสานในหลายคอลัมน์ที่เฉพาะเจาะจง ในสถานการณ์นี้ เราต้องการรวมสอง dataframes ที่มีการแชร์สองฟิลด์ระหว่างกัน คุณจะบอกได้ว่าหากมีคอลัมน์มากกว่านี้ วิธีนี้จะมีประโยชน์มากกว่านั้นอีก
เรามีดาต้าเฟรมแรกซึ่งก็คือ df จากนั้นเราจะรวมคอลัมน์ของเราเข้ากับดาต้าเฟรมที่สอง df2 นี่คือโค้ดเพื่อให้บรรลุผลลัพธ์ที่เราคาดหวัง:
merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )
เพื่อให้เห็นภาพการผสานและโค้ดนี้ได้ดีขึ้น ฉันได้นำเสนอภาพหน้าจอด้านล่าง คุณจะเห็นว่า dataframe ที่สองมีลักษณะอย่างไรด้านล่าง พร้อมด้วย First
และ Last
ชื่อ เช่นเดียวกับที่อยู่ใน dataframe แรก แต่มีคอลัมน์ใหม่ Numeric
. จากนั้น เราจะมีคอลัมน์เฉพาะที่เราต้องการผสาน ในขณะที่ส่งคืนคอลัมน์ Gender
, Birthdate
และใหม่ Numeric
คอลัมน์เช่นกัน คอลัมน์ต่างๆ คือรายการคอลัมน์ซึ่งมีชื่อว่า cols
.
การรวมดาต้าเฟรม ภาพหน้าจอโดยผู้แต่ง [5]
อย่างที่คุณเห็น วิธีการรวมดาต้าเฟรมวิธีนี้เป็นวิธีง่ายๆ เพื่อให้ได้ผลลัพธ์แบบเดียวกับที่คุณจะได้รับจากการสืบค้น SQL
สรุป
ในบทช่วยสอนนี้ เราเห็นคำถามหรือแบบสอบถามทั่วไปสองข้อที่คุณจะดำเนินการใน SQL แต่กลับดำเนินการกับ pandas dataframes ใน Python แทน
โดยสรุป นี่คือสองสถานการณ์ที่เราร่วมงานด้วย:
- ส่งกลับเปอร์เซ็นต์ของแถวจากชุดข้อมูลทั้งหมดจากหลายเงื่อนไข
- ผสานกับคอลัมน์เฉพาะหลายคอลัมน์เพื่อส่งคืน dataframe สุดท้ายด้วยคอลัมน์ใหม่
ฉันหวังว่าคุณจะพบบทความของฉันทั้งน่าสนใจและมีประโยชน์ โปรดแสดงความคิดเห็นด้านล่างหากคุณเห็นด้วยหรือไม่เห็นด้วยกับวิธีการเหล่านี้ ทำไมหรือทำไมไม่? สิ่งเหล่านี้สามารถชี้แจงเพิ่มเติมได้อย่างแน่นอน แต่ฉันหวังว่าฉันจะสามารถให้ความกระจ่างเกี่ยวกับวิธีที่คุณสามารถใช้ pandas และ Python แทน SQL ได้ ขอบคุณสำหรับการอ่าน!
กรุณาตรวจสอบโปรไฟล์ของฉัน Matt Pzybylaและบทความอื่นๆ รวมถึงติดต่อฉันทาง LinkedIn
ฉันไม่ได้มีส่วนเกี่ยวข้องกับบริษัทเหล่านี้
อ้างอิง
[1] รูปภาพโดย บรูซ ฮอง on Unsplash(2018)
[2] M. Przybyla ภาพหน้าจอข้อมูลตัวอย่าง (2021)
[3] M. Przybyla ภาพหน้าจอรหัสเงื่อนไข (2021)
[4] M. Przybyla รวมภาพหน้าจอผลลัพธ์ dataframe ที่ผสาน (2021)
[5] M. Przybyla, รวมภาพหน้าจอ dataframe, (2021)
Bio: แมทธิว พริซีบีลา เป็นนักวิทยาศาสตร์ข้อมูลอาวุโสที่ Favor Delivery และเป็นนักเขียนด้านเทคนิคอิสระ โดยเฉพาะอย่างยิ่งในด้านวิทยาศาสตร์ข้อมูล
Original. โพสต์ใหม่โดยได้รับอนุญาต
ที่เกี่ยวข้อง
ที่มา: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html
- "
- &
- 2021
- ทั้งหมด
- นักวิเคราะห์
- การวิเคราะห์
- บทความ
- บทความ
- รถยนต์
- รหัส
- คอลัมน์
- ร่วมกัน
- บริษัท
- ข้อมูล
- การประมวลผล
- วิทยาศาสตร์ข้อมูล
- นักวิทยาศาสตร์ข้อมูล
- การเรียนรู้ลึก ๆ
- การจัดส่ง
- ผู้อำนวยการ
- วิศวกร
- วิศวกร
- เทียม
- สาขา
- ชื่อจริง
- รูป
- ฟรี
- อาชีพอิสระ
- ฟังก์ชัน
- เพศ
- GPUs
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTTPS
- IT
- ร่วม
- ภาษา
- เรียนรู้
- การเรียนรู้
- เบา
- Line
- รายการ
- เรียนรู้เครื่อง
- ML
- ชื่อ
- ออนไลน์
- เปิด
- โอเพนซอร์ส
- ใบสั่ง
- อื่นๆ
- มุมมอง
- นำเสนอ
- โปรไฟล์
- การเขียนโปรแกรม
- หลาม
- ผลสอบ
- วิทยาศาสตร์
- นักวิทยาศาสตร์
- ที่ใช้ร่วมกัน
- ง่าย
- ทักษะ
- So
- แก้
- จุด
- SQL
- จำนวนชั้น
- วิชาการ
- เคล็ดลับ
- ด้านบน
- เกี่ยวกับการสอน
- บทเรียน
- WHO
- นักเขียน
- X