Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแปลงคอลัมน์เป็นตัวพิมพ์ใหญ่ใน Pandas DataFrame ด้วย Python

ในบทช่วยสอนนี้ เราจะดูวิธีทำให้คอลัมน์ชื่อใน DataFrame กลายเป็นตัวพิมพ์ใหญ่ทั้งหมด (Uppercase) มีหลายวิธีในการทำ เราจะดูทีละวิธี

วิธีที่ 1: ใช้ str.upper()

เราสามารถกำหนดคอลัมน์ใหม่โดยแปลงคอลัมน์เดิมเป็นตัวพิมพ์ใหญ่ด้วยเมธอด upper() ของ string accessor (.str)

ตัวอย่างโค้ด

import pandas as pd

# data for DataFrame
data = {
    'Name': ['Hafeez', 'Aslan', 'Kareem'],
    'Age': [19, 21, 18],
    'Profession': ['Developer', 'Engineer', 'Artist']
}

# creating DataFrame
data_frame = pd.DataFrame(data)

# displaying the DataFrame
print('---------------------Before-------------------')
print(data_frame)
print()

# making the Name column strings to upper case
data_frame['Name'] = data_frame['Name'].str.upper()

# displaying the DataFrame
print('---------------------After-------------------')
print(data_frame)

ผลลัพธ์

---------------------Before-------------------
     Name  Age Profession
0  Hafeez   19  Developer
1   Aslan   21   Engineer
2  Kareem   18     Artist
---------------------After-------------------
     Name  Age Profession
0  HAFEEZ   19  Developer
1   ASLAN   21   Engineer
2  KAREEM   18     Artist

วิธีที่ 2: ใช้ apply() กับ lambda

เราสามารถทำได้อีกวิธีด้วยเมธอด apply() ของ Series ร่วมกับ lambda function

ตัวอย่างโค้ด

import pandas as pd

data = {
    'Name': ['Hafeez', 'Aslan', 'Kareem'],
    'Age': [19, 21, 18],
    'Profession': ['Developer', 'Engineer', 'Artist']
}
data_frame = pd.DataFrame(data)

print('---------------------Before-------------------')
print(data_frame)
print()

# using apply with lambda
data_frame['Name'] = data_frame['Name'].apply(lambda name: name.upper())

print('---------------------After-------------------')
print(data_frame)

ผลลัพธ์

---------------------Before-------------------
     Name  Age Profession
0  Hafeez   19  Developer
1   Aslan   21   Engineer
2  Kareem   18     Artist
---------------------After-------------------
     Name  Age Profession
0  HAFEEZ   19  Developer
1   ASLAN   21   Engineer
2  KAREEM   18     Artist

สรุป

ทั้งสองวิธีให้ผลลัพธ์เหมือนกัน วิธีที่ 1 (.str.upper()) เป็นวิธีเฉพาะเจาะจงสำหรับ string operations และมักจะเร็วกว่า วิธีที่ 2 (.apply(lambda x: x.upper())) ยืดหยุ่นกว่า หากต้องการ logic ที่ซับซ้อนกว่าการแปลง case หากมีข้อสงสัย สามารถถามได้ในส่วนความคิดเห็น