นวัตกรรมในเทคโนโลยีช่วยเสริมศักยภาพภาคการพัฒนาแอพได้อย่างไร 1

วิธีค้นหาดาต้าเฟรมของ Pandas

โหนดต้นทาง: 1017694

วิธีค้นหาดาต้าเฟรมของ Pandas

มุมมองของนักวิทยาศาสตร์ข้อมูลเกี่ยวกับฟังก์ชัน Python ที่เหมือน SQL


By แมทธิว พริซีบีลา, นักวิทยาศาสตร์ข้อมูลอาวุโสที่ Favor Delivery



ภาพถ่ายโดย บรูซ ฮอง on Unsplash [1]

สารบัญ

 
 

  1. บทนำ
  2. หลายเงื่อนไข
  3. การรวมหลายคอลัมน์เฉพาะเจาะจง
  4. สรุป
  5. อ้างอิง

บทนำ

 
 
ไม่ว่าคุณจะเปลี่ยนจากวิศวกรข้อมูล/นักวิเคราะห์ข้อมูล หรือต้องการเป็นนักวิทยาศาสตร์ข้อมูลที่มีประสิทธิภาพมากขึ้น การสืบค้น 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. จากนั้น เราจะมีคอลัมน์เฉพาะที่เราต้องการผสาน ในขณะที่ส่งคืนคอลัมน์ GenderBirthdateและใหม่ Numeric คอลัมน์เช่นกัน คอลัมน์ต่างๆ คือรายการคอลัมน์ซึ่งมีชื่อว่า cols.



การรวมดาต้าเฟรม ภาพหน้าจอโดยผู้แต่ง [5]

 

อย่างที่คุณเห็น วิธีการรวมดาต้าเฟรมวิธีนี้เป็นวิธีง่ายๆ เพื่อให้ได้ผลลัพธ์แบบเดียวกับที่คุณจะได้รับจากการสืบค้น SQL

สรุป

 
 
ในบทช่วยสอนนี้ เราเห็นคำถามหรือแบบสอบถามทั่วไปสองข้อที่คุณจะดำเนินการใน SQL แต่กลับดำเนินการกับ pandas dataframes ใน Python แทน

โดยสรุป นี่คือสองสถานการณ์ที่เราร่วมงานด้วย:

  1. ส่งกลับเปอร์เซ็นต์ของแถวจากชุดข้อมูลทั้งหมดจากหลายเงื่อนไข
  2. ผสานกับคอลัมน์เฉพาะหลายคอลัมน์เพื่อส่งคืน 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. โพสต์ใหม่โดยได้รับอนุญาต

ที่เกี่ยวข้อง



เรื่องเด่นใน 30 วันที่ผ่านมา
เป็นที่นิยม
  1. หลักสูตรออนไลน์วิทยาศาสตร์ข้อมูล 6 อันดับแรกในปี 2021
  2. นักวิทยาศาสตร์ข้อมูลและวิศวกร ML เป็นพนักงานที่หรูหรา
  3. คำแนะนำสำหรับการเรียนรู้ Data Science จากผู้อำนวยการฝ่ายวิจัยของ Google
  4. GitHub Copilot โอเพ่นซอร์สทางเลือก
  5. รากฐานทางเรขาคณิตของการเรียนรู้เชิงลึก
แบ่งปันมากที่สุด
  1. ทำไมคุณควรเรียนรู้ "Productive Data Science" และอย่างไร
  2. ไม่เพียงแต่สำหรับ Deep Learning เท่านั้น: GPUs เร่งความเร็ว Data Science & Data Analytics ได้อย่างไร
  3. บูตสแตรป Modern Data Stack ใน 5 นาทีด้วย Terraform
  4. วิทยาศาสตร์ข้อมูลที่ขับเคลื่อนด้วย GPU (ไม่ใช่การเรียนรู้เชิงลึก) ด้วย RAPIDS
  5. มาเป็นวิศวกรวิเคราะห์ใน 90 วัน

ที่มา: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

ประทับเวลา:

เพิ่มเติมจาก KD นักเก็ต