วิธีแยกตัวเลขจากสตริงใน pandas
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อแยกตัวเลขจากสตริงในหมีแพนด้า:
df[' my_column ']. str . extract (' (\d+) ')
ไวยากรณ์เฉพาะนี้จะแยกตัวเลขจากแต่ละสตริงลงในคอลัมน์ที่เรียกว่า my_column ใน Pandas DataFrame
หมายเหตุ : เมื่อใช้นิพจน์ทั่วไป \d แทน “ตัวเลขใดๆ” และ + หมายถึง “หนึ่งหรือมากกว่า”
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่าง: แยกตัวเลขออกจากสตริงใน Pandas
สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับการขายผลิตภัณฑ์ต่างๆ:
import pandas as pd #createDataFrame df = pd. DataFrame ({' product ': ['A33', 'B34', 'A22', 'A50', 'C200', 'D7', 'A9', 'A13'], ' sales ': [18, 22, 19, 14, 14, 11, 20, 28]}) #view DataFrame print (df) product sales 0 A33 18 1 B34 22 2 A22 19 3 A50 14 4 C200 14 5 D7 11 6 A9 20 7 A13 28
สมมติว่าเราต้องการแยกจำนวนของแต่ละสตริงออกจากคอลัมน์ ผลคูณ
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำสิ่งนี้:
#extract numbers from strings in 'product' column
df[' product ']. str . extract (' (\d+) ')
0
0 33
1 34
2 22
3 50
4,200
5 7
6 9
7 13
ผลลัพธ์คือ DataFrame ที่ประกอบด้วยตัวเลขในแต่ละแถวของคอลัมน์ ผลิตภัณฑ์ เท่านั้น
ตัวอย่างเช่น:
- สูตรแยก 33 จากสตริง A33 ในบรรทัดแรก
- สูตรจะแยก 34 ออกจากสตริง B34 ในบรรทัดแรก
- สูตรจะแยก 22 ออกจากสตริง A22 ในแถวแรก
และอื่นๆ
หากต้องการ คุณยังสามารถเก็บค่าตัวเลขเหล่านี้ไว้ในคอลัมน์ใหม่ของ DataFrame ได้:
#extract numbers from strings in 'product' column and store them in new column
df[' product_numbers '] = df[' product ']. str . extract (' (\d+) ')
#view updated DataFrame
print (df)
product sales product_numbers
0 A33 18 33
1 B34 22 34
2 A22 19 22
3 A50 14 50
4 C200 14,200
5 D7 11 7
6 A9 20 9
7 A13 28 13
คอลัมน์ใหม่ชื่อ product_numbers มีเพียงตัวเลขสำหรับแต่ละสตริงในคอลัมน์ ผลิตภัณฑ์
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
Pandas: วิธีเรียงลำดับ DataFrame ตามคอลัมน์สตริง
Pandas: วิธีลบอักขระเฉพาะออกจากสตริง
Pandas: ค้นหาสตริงในคอลัมน์ทั้งหมดของ DataFrame