วิธีดำเนินการ cross join ใน pandas (พร้อมตัวอย่าง)


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อดำเนินการรวมข้ามในแพนด้า:

 #create common key
df1[' key '] = 0
df2[' key '] = 0

#outer merge on common key (eg a cross join)
df1. merge (df2, on=' key ', how=' outer ')

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่าง: ดำเนินการ Cross Join ใน Pandas

สมมติว่าเรามี DataFrames แพนด้าสองตัวต่อไปนี้:

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'],
                    ' points ': [18, 22, 19, 14]})

print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'B', 'F'],
                    ' assists ': [4, 9, 8]})

print (df2)

  team assists
0 to 4
1 B 9
2 F 8

รหัสต่อไปนี้แสดงวิธีการดำเนินการรวมข้ามบน DataFrames ทั้งสอง:

 #create common key
df1[' key '] = 0
df2[' key '] = 0

#perform cross join
df3 = df1. merge (df2, on=' key ', how=' outer ')

#drop key column
del df3[' key ']

#view results
print (df3)

   team_x points team_y assists
0 A 18 A 4
1 A 18 B 9
2 A 18 F 8
3 B 22 A 4
4 B 22 B 9
5 B 22 F 8
6 C 19 A 4
7 C 19 B 9
8 C 19 F 8
9 D 14 A 4
10 D 14 B 9
11 D 14 F 8

ผลลัพธ์ที่ได้คือ DataFrame ที่ประกอบด้วยแถวที่เป็นไปได้ทั้งหมดจากแต่ละ DataFrame

ตัวอย่างเช่น แถวแรกของ DataFrame แรก ประกอบด้วยทีม A และ 18 คะแนน บรรทัดนี้สอดคล้องกับแต่ละบรรทัดของ DataFrame ที่สอง

จากนั้นแถวที่สองของ DataFrame แรกจะมีทีม B และ 22 คะแนน แถวนี้ยังสอดคล้องกับแต่ละแถวของ DataFrame ที่สองด้วย

ผลลัพธ์ที่ได้คือ DataFrame ที่มี 12 แถว

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:

วิธีเข้าร่วมซ้ายใน Pandas
วิธีเข้าร่วมซ้ายใน Pandas
Pandas เข้าร่วมหรือผสาน: อะไรคือความแตกต่าง?

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *