Pandas: วิธีสร้างคอลัมน์หากไม่มีอยู่


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อสร้างคอลัมน์ใน Pandas DataFrame หากยังไม่มี:

 df[' my_column '] = df. get (' my_column ', df[' col1 '] * df[' col2 ']) 

ไวยากรณ์เฉพาะนี้จะสร้างคอลัมน์ใหม่ที่เรียกว่า my_column หากไม่มีอยู่ใน DataFrame และถูกกำหนดเป็นผลคูณของคอลัมน์ที่มีอยู่ col1 และ col2

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

ตัวอย่าง: สร้างคอลัมน์ใน Pandas หากไม่มีอยู่

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                   ' sales ': [4, 6, 5, 8, 14, 13, 13, 12, 9, 8, 19, 14],
                   ' price ': [1, 2, 2, 1, 2, 4, 4, 3, 3, 2, 2, 3]})

#view DataFrame
print (df)

    day sales price
0 1 4 1
1 2 6 2
2 3 5 2
3 4 8 1
4 5 14 2
5 6 13 4
6 7 13 4
7 8 12 3
8 9 9 3
9 10 8 2
10 11 19 2
11 12 14 3

ตอนนี้ สมมติว่าเราพยายามเพิ่มคอลัมน์ชื่อ price หากไม่มีอยู่แล้ว และกำหนดให้เป็นคอลัมน์โดยแต่ละค่าคือ 100:

 #attempt to add column called 'price'
df[' price '] = df. get (' price ', 100)    

#view updated DataFrame
print (df)

    day sales price
0 1 4 1
1 2 6 2
2 3 5 2
3 4 8 1
4 5 14 2
5 6 13 4
6 7 13 4
7 8 12 3
8 9 9 3
9 10 8 2
10 11 19 2
11 12 14 3

เนื่องจากมีคอลัมน์ชื่อ price อยู่แล้ว pandas จึงไม่เพิ่มคอลัมน์นั้นลงใน DataFrame

อย่างไรก็ตาม สมมติว่าเราพยายามเพิ่มคอลัมน์ใหม่ที่เรียกว่า รายได้ หากไม่มีอยู่แล้ว และกำหนดให้เป็นคอลัมน์โดยที่ค่าเป็นผลคูณของคอลัมน์ยอดขายและราคา:

 #attempt to add column called 'revenue'
df[' revenue '] = df. get (' revenue ', df[' sales '] * df[' price '])

#view updated DataFrame
print (df)

    day sales price revenue
0 1 4 1 4
1 2 6 2 12
2 3 5 2 10
3 4 8 1 8
4 5 14 2 28
5 6 13 4 52
6 7 13 4 52
7 8 12 3 36
8 9 9 3 27
9 10 8 2 16
10 11 19 2 38
11 12 14 3 42

คอลัมน์ รายได้ นี้ถูกเพิ่มลงใน DataFrame เนื่องจากไม่มีอยู่แล้ว

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

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

วิธีลบแถวใน Pandas DataFrame ตามเงื่อนไข
วิธีกรอง Pandas DataFrame ในหลายเงื่อนไข
วิธีใช้ตัวกรอง “NOT IN” ใน Pandas DataFrame

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

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