ในฐานะนักวิเคราะห์ข้อมูล คุณมักจะต้องเผชิญกับความจำเป็นในการรวมชุดข้อมูลหลายชุด คุณจะต้องทำเช่นนี้เพื่อทำการวิเคราะห์ให้เสร็จสิ้นและได้ข้อสรุปสำหรับธุรกิจ/ผู้มีส่วนได้ส่วนเสียของคุณ
การแสดงข้อมูลมักเป็นเรื่องยากเมื่อจัดเก็บไว้ในตารางต่างๆ ในกรณีเช่นนี้ การรวมจะพิสูจน์คุณค่าของพวกเขา โดยไม่คำนึงถึงภาษาโปรแกรมที่คุณกำลังทำงานอยู่
คลิปวิดีโอประจำวันนี้
การรวม Python นั้นเหมือนกับการรวม SQL: พวกเขารวมชุดข้อมูลโดยจับคู่แถวของพวกเขาในดัชนีทั่วไป
สร้างสอง DataFrames สำหรับอ้างอิง
หากต้องการทำตามตัวอย่างในคู่มือนี้ คุณสามารถสร้าง DataFrames ตัวอย่างได้สองแบบ ใช้รหัสต่อไปนี้เพื่อสร้าง DataFrame แรกซึ่งมี ID ชื่อและนามสกุล
import pandas as pd
a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)
สำหรับขั้นตอนแรก นำเข้า หมีแพนด้า ห้องสมุด. จากนั้นคุณสามารถใช้ตัวแปร เอ เพื่อเก็บผลลัพธ์จากตัวสร้าง DataFrame ส่งพจนานุกรมที่มีค่าที่คุณต้องการผ่านตัวสร้าง
สุดท้าย แสดงเนื้อหาของค่า DataFrame ด้วยฟังก์ชันการพิมพ์ เพื่อตรวจสอบทุกอย่างที่คุณคาดหวัง
ในทำนองเดียวกัน คุณสามารถสร้าง DataFrame อื่น ข ซึ่งมี ID และค่าเงินเดือน
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})
print(b)
คุณสามารถตรวจสอบเอาต์พุตในคอนโซลหรือ IDE ควรยืนยันเนื้อหาของ DataFrames ของคุณ:
Joins แตกต่างจาก Merge Function ใน Python อย่างไร?
ไลบรารีแพนด้าเป็นหนึ่งในไลบรารีหลักที่คุณสามารถใช้เพื่อจัดการ DataFrames เนื่องจาก DataFrames มีชุดข้อมูลหลายชุด ฟังก์ชันต่างๆ จึงมีให้ใน Python เพื่อรวมเข้าด้วยกัน
Python มีฟังก์ชันการรวมและการรวม ซึ่งคุณสามารถใช้เพื่อรวม DataFrames ได้ มีความแตกต่างอย่างสิ้นเชิงระหว่างฟังก์ชันทั้งสองนี้ ซึ่งคุณต้องจำไว้เสมอก่อนที่จะใช้อย่างใดอย่างหนึ่ง
ส่ง SMS ฟรีไปยังโทรศัพท์มือถือ
ฟังก์ชัน join รวม DataFrames สองอันตามค่าดัชนี ดิ ฟังก์ชันผสานรวม DataFrames ตามค่าดัชนีและคอลัมน์
สิ่งที่คุณต้องรู้เกี่ยวกับการเข้าร่วมใน Python
ก่อนพูดถึงประเภทของการเข้าร่วมที่มี สิ่งสำคัญที่ควรทราบมีดังนี้
- การรวม SQL เป็นหนึ่งในฟังก์ชันพื้นฐานที่สุด และค่อนข้างคล้ายกับการรวมของ Python
- ในการเข้าร่วม DataFrames คุณสามารถใช้ pandas.DataFrame.join() กระบวนการ.
- การรวมเริ่มต้นดำเนินการเข้าร่วมด้านซ้าย ในขณะที่ฟังก์ชันผสานดำเนินการเข้าร่วมภายใน
ไวยากรณ์เริ่มต้นสำหรับการเข้าร่วม Python มีดังนี้:
DataFrame.join(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='',
sort=False)
เรียกใช้วิธีการเข้าร่วมใน DataFrame แรกและส่ง DataFrame ที่สองเป็นพารามิเตอร์แรก อื่นๆ . อาร์กิวเมนต์ที่เหลือคือ:
- บน ซึ่งตั้งชื่อดัชนีที่จะเข้าร่วม หากมีมากกว่าหนึ่งรายการ
- อย่างไร , ที่ กำหนดประเภทการรวม ทั้งด้านใน ด้านนอก ด้านซ้าย และด้านขวา
- lsuffix , ที่ กำหนดสตริงต่อท้ายด้านซ้ายของชื่อคอลัมน์ของคุณ
- คำต่อท้าย , ที่ กำหนดสตริงส่วนต่อท้ายที่ถูกต้องของชื่อคอลัมน์ของคุณ
- เรียงลำดับ , ที่ เป็นบูลีนที่ระบุว่าจะเรียงลำดับ DataFrame ที่เป็นผลลัพธ์หรือไม่
เรียนรู้การใช้การเข้าร่วมประเภทต่างๆ ใน Python
Python มีตัวเลือกเข้าร่วมสองสามแบบ ซึ่งคุณสามารถออกกำลังกายได้ ขึ้นอยู่กับความต้องการของชั่วโมง นี่คือประเภทการเข้าร่วม:
1. เข้าร่วมซ้าย
การรวมด้านซ้ายจะรักษาค่าของ DataFrame แรกไว้เหมือนเดิมในขณะที่นำค่าที่ตรงกันมาจากค่าที่สอง ตัวอย่างเช่น หากคุณต้องการนำค่าที่ตรงกันจาก ข คุณสามารถกำหนดได้ดังนี้:
c = a.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True)
print(c)
เมื่อดำเนินการค้นหา ผลลัพธ์จะมีการอ้างอิงคอลัมน์ต่อไปนี้:
- ID_left
- Fname
- Lname
- ID_right
- เงินเดือน
การรวมนี้จะดึงสามคอลัมน์แรกจาก DataFrame แรก และสองคอลัมน์สุดท้ายจาก DataFrame ที่สอง ได้ใช้ lsuffix และ คำต่อท้าย ค่าเพื่อเปลี่ยนชื่อคอลัมน์ ID จากชุดข้อมูลทั้งสอง ตรวจสอบให้แน่ใจว่าชื่อฟิลด์ผลลัพธ์ไม่ซ้ำกัน
ผลลัพธ์จะเป็นดังนี้:
2. เข้าร่วมขวา
การรวมทางขวาจะรักษาค่าของ DataFrame ที่สองไว้เหมือนเดิม ในขณะที่นำค่าที่ตรงกันจากตารางแรกเข้ามา ตัวอย่างเช่น หากคุณต้องการนำค่าที่ตรงกันจาก เอ คุณสามารถกำหนดได้ดังนี้:
c = b.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True)
print(c)
ผลลัพธ์จะเป็นดังนี้:
หากคุณตรวจสอบโค้ด จะมีการเปลี่ยนแปลงที่ชัดเจนบางประการ ตัวอย่างเช่น ผลลัพธ์จะรวมคอลัมน์ของ DataFrame ที่สองก่อนคอลัมน์จาก DataFrame แรก
คุณควรใช้ค่าของ ขวา สำหรับ อย่างไร อาร์กิวเมนต์เพื่อระบุการเข้าร่วมที่ถูกต้อง นอกจากนี้ โปรดทราบว่าคุณสามารถเปลี่ยน lsuffix และ คำต่อท้าย ค่านิยมเพื่อสะท้อนถึงลักษณะของการเข้าร่วมที่ถูกต้อง
ในการเข้าร่วมปกติของคุณ คุณอาจพบว่าตัวเองใช้การรวมด้านซ้าย ด้านใน และด้านนอกบ่อยกว่า เมื่อเทียบกับการรวมด้านขวา อย่างไรก็ตาม การใช้งานขึ้นอยู่กับความต้องการข้อมูลของคุณทั้งหมด
3. เข้าร่วมภายใน
การรวมภายในส่งรายการที่ตรงกันจากทั้ง DataFrames เนื่องจากการรวมใช้หมายเลขดัชนีเพื่อจับคู่แถว การรวมภายในจึงส่งคืนเฉพาะแถวที่ตรงกัน สำหรับภาพประกอบนี้ ลองใช้ DataFrames สองตัวต่อไปนี้:
วิธีใดจะเป็นวิธีที่มีประสิทธิภาพมากที่สุดในการจัดเก็บไฟล์ในคอมพิวเตอร์ของคุณ
a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})
print(a)
print(b)
ผลลัพธ์จะเป็นดังนี้:
คุณสามารถใช้ inner join ได้ดังนี้:
c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner')
print(c)
ผลลัพธ์ที่ได้จะมีเฉพาะแถวที่มีอยู่ใน DataFrames ทั้งสองอินพุต:
4. เข้าร่วมด้านนอก
การรวมภายนอกส่งกลับค่าทั้งหมดจากทั้ง DataFrames สำหรับแถวที่ไม่มีค่าที่ตรงกัน จะสร้างค่า Null ในแต่ละเซลล์
ใช้ DataFrame เดียวกันกับด้านบน นี่คือรหัสสำหรับการเข้าร่วมภายนอก:
c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer')
print(c)
การใช้การรวมใน Python
การรวม เช่นเดียวกับฟังก์ชันคู่กัน การผสานและการเชื่อมต่อ ให้มากกว่าฟังก์ชันการเข้าร่วมแบบธรรมดา ด้วยชุดตัวเลือกและฟังก์ชันต่างๆ คุณสามารถเลือกตัวเลือกที่ตรงกับความต้องการของคุณได้
คุณสามารถจัดเรียงชุดข้อมูลที่ได้ค่อนข้างง่าย ไม่ว่าจะมีหรือไม่มีฟังก์ชันการรวมก็ตาม ด้วยตัวเลือกที่ยืดหยุ่นที่ Python นำเสนอ