Mastering Pandas: ฟังก์ชันสำคัญของ Pandas สำหรับโครงการถัดไปของคุณ

เผยแพร่แล้ว: 2020-11-30

ห้องสมุด Pandas เป็นห้องสมุดที่ชื่นชอบตลอดกาลสำหรับ Data Scientists หรือนักวิเคราะห์ทั้งหมด เนื่องจากมีลักษณะที่ใช้งานง่าย ฟังก์ชันที่หลากหลาย และการตีความผลลัพธ์ที่ดีขึ้น บุคคลที่เริ่มต้นเส้นทาง Data Science ควรมีคำสั่งที่ดีเหนือแพนด้า จัดทำไปป์ไลน์เพื่อลดความพยายามด้วยตนเองในการทำความสะอาดและประมวลผลข้อมูลล่วงหน้า

Pandas สร้างขึ้นบน Numpy ซึ่งช่วยให้ดำเนินการคำสั่งได้เร็วขึ้นและทำงานให้เสร็จในเวลาที่น้อยลง ในบทความนี้ เราจะแชร์ฟังก์ชันแพนด้าที่ประเมินค่าต่ำเกินไป ซึ่งสามารถปรับปรุงคุณภาพโค้ดของโปรเจ็กต์ของคุณได้

ก่อนที่จะก้าวไปข้างหน้า นี่คือตำนานโดยย่อ:

  • คำสั่งทั้งหมดที่กล่าวถึงถือว่า data frame มีชื่อว่า 'df' ซึ่งเป็นอ็อบเจกต์ของ pd.DataFrame()
  • ห้องสมุด Pandas ถูกนำเข้าเป็นนามแฝงเป็น 'pd'

สารบัญ

เครื่องสาย

ข้อมูลสตริงหรือข้อความมีส่วนสำคัญกับชุดข้อมูล ไม่ว่าจะเป็นข้อมูลที่เกี่ยวข้องกับผู้แต่ง ชื่อเรื่อง สิ่งพิมพ์ของหนังสือ หรือทวีตที่สร้างขึ้นสำหรับแฮชแท็กเฉพาะ เรามีข้อมูลข้อความจำนวนมากและข้อมูลนี้มีประโยชน์เมื่อทำความสะอาดอย่างเหมาะสมและป้อนไปยังตัวแยกประเภท เช่น Naive Bayes เป็นต้น . นี่คือเทคนิคบางอย่างที่คุณสามารถใช้ได้:

  • ในการเข้าถึงข้อมูลประเภทสตริง ให้ใช้ตัวเข้าถึง 'str' ตัวอย่างเช่น df['column_name'].str
  • ทำให้สามารถดำเนินการสตริงทั้งหมดในคอลัมน์ที่เลือกได้
  • การดำเนินงานทั่วไปบางอย่าง ได้แก่
    • df['column_name'].str.len(): ความยาวของแต่ละสตริง
    • .str.split(): แยกเฉพาะอักขระ
    • .str.contains(): ส่งกลับ T/F ว่าคำนั้นอยู่ในสตริงหรือไม่
    • .str.count(): ส่งกลับจำนวนแถวที่ตรงตามนิพจน์ทั่วไปที่ส่งผ่าน
    • .str.findall(): ส่งกลับผลลัพธ์ที่ตรงกับนิพจน์ที่ส่งผ่าน
    • .str.replace(): เหมือนกับ findall แต่จะมีการแทนที่รายการที่ตรงกัน
    • รองรับการทำงานของสตริงทั้งหมด เช่น .title, .isalpha, .isalnum, .isdecimal เป็นต้น

อ่านเพิ่มเติม: Pandas Dataframe Astype

อุปกรณ์ระบุวันที่

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

  • ในการเข้าถึงข้อมูล DateTime ให้แปลงประเภทข้อมูลปัจจุบัน (ค่าวันที่จะถูกแยกวิเคราะห์เป็นสตริงหรืออ็อบเจ็กต์) เป็น DateTime โดยใช้ฟังก์ชัน pd.to_datetime()
  • ตอนนี้โดยใช้ตัวเข้าถึง '.dt' เราสามารถเข้าถึงข้อมูล DateTime ที่จำเป็น เช่น:
    • df['column_name'].dt.day: ส่งกลับวันที่ของวันที่
    • .dt.time: เวลา
    • .dt.year: ปีของวันที่
    • .dt.month: เดือนของวันที่
    • .dt.weekday: ไม่ว่าจะเป็นวันอาทิตย์ วันจันทร์… ในรูปแบบตัวเลขโดยที่ 0 แทนวันจันทร์ หากคุณต้องการชื่อวัน ให้ใช้ .dt.day_name
    • .dt.is_month_start: ส่งกลับ T/F โดยขึ้นอยู่กับว่าวันที่นั้นเป็นวันแรกของเดือนหรือไม่
    • .dt.is_month_end ฟังก์ชันเดียวกับ month_start แต่วันที่สุดท้ายของเดือนได้รับการยืนยันแล้ว
    • .dt.quater: ส่งกลับไตรมาสที่วันที่อยู่
    • .dt.is_quater_start: ส่งกลับ T/F ไม่ว่าวันที่จะเป็นวันแรกของไตรมาส
    • .dt.is_quater_end: ไม่ว่าจะเป็นวันสุดท้ายของไตรมาส
    • .dt.normalize: เมื่อองค์ประกอบเวลาไม่ได้มีส่วนสนับสนุนอันมีค่าในการวิเคราะห์ ก็จะถูกละเลยได้ คำสั่งนี้จะปัดเศษเวลาเป็นเที่ยงคืน เช่น 00:00:00

พล็อตแพนด้า

การแสดงภาพพล็อตเป็นองค์ประกอบหลักอย่างหนึ่งของการวิเคราะห์ข้อมูลและมีบทบาทสำคัญในการทำวิศวกรรมคุณลักษณะ ตัวอย่างเช่น สามารถตรวจพบค่าผิดปกติในชุดข้อมูลได้โดยใช้แผนภาพกล่องซึ่งแสดงถึงช่วงค่ามัธยฐานและช่วงระหว่างควอไทล์ โดยปล่อยให้ค่าผิดปกติอยู่ที่ปลายสุด

การทำพล็อตส่วนใหญ่จะทำผ่านไลบรารีอื่นๆ เช่น seaborn, plotly, bokeh, matplotlib แต่เมื่อคุณต้องการแสดงภาพข้อมูลในทันทีโดยไม่ต้องกำหนดไลบรารีอย่างชัดเจน แพนด้ามีทางออก ด้วยการใช้ฟังก์ชัน pd.plot() คุณสามารถพล็อตกราฟที่เรียกใช้ภายในโดยตรงโดยใช้ matplotlib มีตัวเลือกมากมายสำหรับสิ่งนี้:

  • df.plot() หรือ df['column_name'].plot() (ขึ้นอยู่กับประเภทของกราฟ)
  • df.plot() มีพารามิเตอร์ 'kind' ซึ่งกำหนดกราฟ โดยค่าเริ่มต้น จะเป็นพล็อต 'เส้น' แต่ตัวเลือกอื่นๆ ที่มีคือ 'bar', 'barh', 'box', 'hist', 'kde' เป็นต้น
  • มันเรียกใช้แบ็กเอนด์ matplotlib ซึ่งหมายความว่าเราสามารถเข้าถึงอาร์กิวเมนต์ของมันผ่านตัวเข้าถึง 'ขวาน'
  • ฟังก์ชัน .plot() สามารถใช้อาร์กิวเมนต์เช่น 'title', 'xticks', 'xlim', 'xlabel', 'fontsize', 'colormap' ซึ่งขจัดความจำเป็นในการกำหนดไลบรารีภายนอกได้ในระดับหนึ่ง

ฟังก์ชั่นเบ็ดเตล็ด

  • pd.get_dummies(): ขณะประมวลผลข้อมูลล่วงหน้า บางครั้งเราพบกับข้อมูลหมวดหมู่ที่ต้องแปลงเป็นรูปแบบตัวเลขเพื่อป้อนเข้าสู่โมเดล เมื่อหมวดหมู่เหล่านี้ค่อนข้างต่ำ ขอแนะนำให้ใช้การเข้ารหัสแบบร้อนครั้งเดียว แต่การทำเช่นนี้จะต้องใช้เวลาด้วยตนเอง ฟังก์ชัน Dummies นี้ไม่เพียงแต่แปลงค่าเท่านั้น แต่หาก drop_first ตั้งค่าเป็น True จะลบคอลัมน์ก่อนหน้าที่มีหมวดหมู่ทั้งหมด
  • df.query(): เป็นฟังก์ชันที่ช่วยให้คุณใช้มาสก์แบบมีเงื่อนไขกับกรอบข้อมูลได้ ความแตกต่างพื้นฐานระหว่างสิ่งนี้กับการมาสก์ปกติคือ ฟังก์ชันนี้จะคืนค่าโดยตรงแทนบูลีนมาสก์ ลดความพยายามในการสร้างมาสก์และนำไปใช้กับกรอบข้อมูล
  • df.select_dtypes(): บางครั้งเราจำเป็นต้องดำเนินการบางอย่างกับประเภทข้อมูลหนึ่งประเภท ตัวอย่างเช่น ในขณะที่อ่านข้อมูลจากไฟล์ภายนอก ข้อมูลบางประเภทถูกกำหนดให้เป็นวัตถุ ขณะทำความสะอาดข้อมูล ชุดข้อมูลต้องมีประเภทข้อมูลที่ถูกต้องทั้งหมด และการดำเนินการด้วยตนเองโดย df.astype('data-type') จะเป็นเรื่องที่น่าเบื่อหน่ายเมื่อจำนวนประเภทข้อมูลดังกล่าวมีมาก ฟังก์ชันนี้จะเลือกประเภทข้อมูลที่ระบุและสามารถใช้ร่วมกับฟังก์ชัน .apply() ได้ โค้ดตัวอย่างจะมีลักษณะดังนี้:

df.select_dtypes(object).apply(astype(str))

ต้องอ่าน: คำถามสัมภาษณ์แพนด้า

บทสรุป

งานนี้เรียกว่า chaining และเป็นเรื่องปกติมากในขณะที่ทำงาน data science เพื่อลดความพยายามในการกำหนดตัวแปรสำหรับทุกขั้นตอนที่จะดำเนินการ

หากคุณอยากเรียนรู้เกี่ยวกับ Pandas ให้ไปที่ IIIT-B & upGrad's PG Diploma in Data Science ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10 รายการ เวิร์กช็อปภาคปฏิบัติ การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม แบบตัวต่อตัว -1 พร้อมที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ