วิธีแปลงบูลีนเป็นสตริงใน pandas dataframe


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

 df[' my_bool_column '] = df[' my_bool_column ']. replace ({ True : ' True ', False : ' False '})

ตัวอย่างนี้จะแทนที่ค่า True แต่ละค่าด้วยสตริง “True” และค่า False แต่ละค่าด้วยสตริง “False” ในคอลัมน์ชื่อ my_bool_column

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

ตัวอย่าง: แปลงบูลีนเป็นสตริงใน Pandas

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
                   ' points ': [18,20, 25, 40, 34, 32, 19],
                   ' all_star ': [True, False, True, True, True, False, False],
                   ' starter ': [False, True, True, True, False, False, False]})

#view DataFrame
print (df)

  team points all_star starter
0 A 18 True False
1 B 20 False True
2 C 25 True True
3 D 40 True True
4 E 34 True False
5 F 32 False False
6 G 19 False False

เราสามารถใช้ฟังก์ชัน dtypes เพื่อตรวจสอบประเภทข้อมูลของแต่ละคอลัมน์ใน DataFrame:

 #view data type of each column
print ( df.dtypes )

team object
int64 dots
all_star bool
starter bool
dtype:object

จากผลลัพธ์ เราจะเห็นว่าทั้งคอลัมน์ all_star และคอลัมน์ เริ่มต้น เป็นบูลีน

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแปลงคอลัมน์ all_star เป็นคอลัมน์สตริง:

 #convert Boolean values in all_star column to strings
df[' all_star '] = df[' all_star ']. replace ({ True : ' True ', False : ' False '})

#view updated DataFrame
print (df)

  team points all_star starter
0 A 18 True False
1 B 20 False True
2 C 25 True True
3 D 40 True True
4 E 34 True False
5 F 32 False False
6 G 19 False False

#view updated data types of each column
print ( df.dtypes )

team object
int64 dots
all_star object
starter bool
dtype:object

จากผลลัพธ์เราจะเห็นว่าคอลัมน์ all_star ถูกแปลงเป็นคอลัมน์สตริงแล้ว

ในการแปลงคอลัมน์ all_star และคอลัมน์ เริ่มต้น จากบูลีนเป็นสตริง เราสามารถใช้ไวยากรณ์ต่อไปนี้:

 #convert Boolean values in all_star and starter columns to strings
df[[' all_star ', ' starter ']] = df[[' all_star ', ' starter ']]. replace ({ True : ' True ', False : ' False '})

#view updated DataFrame
print (df)

  team points all_star starter
0 A 18 True False
1 B 20 False True
2 C 25 True True
3 D 40 True True
4 E 34 True False
5 F 32 False False
6 G 19 False False

#view updated data types of each column
print ( df.dtypes )

team object
int64 dots
all_star object
starter object
dtype:object

จากผลลัพธ์ เราจะเห็นว่าคอลัมน์ Boolean ทั้งสองคอลัมน์ถูกแปลงเป็นสตริงแล้ว

หมายเหตุ: คุณสามารถดูเอกสารฉบับเต็มสำหรับฟังก์ชัน pandas แทนที่() ได้ที่นี่

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

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

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

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

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