Chúng ta thường cần xóa khoảng trắng khỏi dữ liệu bằng gấu trúc;
Hãy xem khung dữ liệu sau, thực tế không có gì lạ khi nhận dữ liệu như bên dưới - có thể có khoảng trắng ở phía trước, sau hoặc thậm chí bên trong các giá trị
import pandas as pd
df = pd.DataFrame[{
'country': [' USA ','India','Germ any','Fra nce', ' Canada ',
'Nether land','UK','Singapore', 'Australia',
'Canada '],
}]
df
country
0 USA
1 India
2 Germ any
3 Fra nce
4 Canada
5 Nether land
6 UK
7 Singapore
8 Australia
9 Canada
df['country'].values
array[[' USA ', 'India', 'Germ any', 'Fra nce', ' Canada ',
'Nether land', 'UK', 'Singapore', 'Australia',
'Canada '], dtype=object]
Những khoảng trắng này gây khó chịu vì đối với máy tính, "Canada" và "Canada" không giống nhau nhờ khoảng trắng
'Canada' in df['country'].values
False
' Canada ' in df['country'].values
True
Xóa khoảng trắng ở đầu và cuối trong Pandas
Cách dễ nhất để xóa khoảng trắng ở đầu và cuối trong gấu trúc là sử dụng trình truy cập str cho phép gấu trúc có khả năng sử dụng các hàm Chuỗi
Cả khoảng trắng đầu và cuối
Lưu ý trong ví dụ dưới đây, chúng ta cố tình để trống đối số trong phương thức strip[]. Điều này sẽ xóa tất cả khoảng trắng trước và sau các giá trị Chuỗi
df['clean'] = df['country'].str.strip[]
df
country clean
0 USA USA
1 India India
2 Germ any Germ any
3 Fra nce Fra nce
4 Canada Canada
5 Nether land Nether land
6 UK UK
7 Singapore Singapore
8 Australia Australia
9 Canada Canada
df['clean'].values
array[['USA', 'India', 'Germ any', 'Fra nce', 'Canada', 'Nether land',
'UK', 'Singapore', 'Australia', 'Canada'], dtype=object]
Chỉ khoảng trắng hàng đầu
Trong một số trường hợp, chúng tôi có thể chỉ muốn xóa khoảng trắng ở đầu [bên trái của các giá trị Chuỗi]. Chúng ta có thể làm điều này bằng cách sử dụng phương thức lstrip[] [dải trái]. Lưu ý khoảng trắng ở cuối không bị ảnh hưởng
df['left_clean'] = df['country'].str.lstrip[]
df['left_clean'].values
array[['USA ',
'India',
'Germ any',
'Fra nce',
'Canada ',
'Nether land',
'UK',
'Singapore',
'Australia',
'Canada '], dtype=object]
Chỉ khoảng trắng ở cuối
Chúng tôi cũng có thể chỉ xóa khoảng trắng ở cuối và giữ nguyên khoảng trắng ở đầu. Chỉ cần gọi phương thức rstrip[]
df['right_clean'] = df['country'].str.rstrip[]
df['right_clean'].values
array[[' USA',
'India',
'Germ any',
'Fra nce',
' Canada',
'Nether land',
'UK',
'Singapore',
'Australia',
'Canada'],
dtype=object]
Xóa khoảng trắng không mong muốn bên trong một chuỗi
Lưu ý trong dữ liệu 'đã được làm sạch' ở trên, vẫn còn một số khoảng trắng bên trong các giá trị Chuỗi, chẳng hạn như "Germ any" và "Nether land". Chúng tôi cũng muốn xóa những thứ đó để làm cho tên quốc gia của chúng tôi viết đúng chính tả
Chúng ta có thể sử dụng hàm lstrip để xóa các ký tự khoảng trắng ở đầu khỏi cột DataFrame để xóa các ký tự khoảng trắng ở đầu khỏi cột DataFrame như được hiển thị
df. tên_sản_phẩm . str . lstrip[]
Hàm lstrip sẽ xóa các ký tự khoảng trắng ở đầu khỏi cột product_name
Đoạn mã trên sẽ trả về
Lưu ý rằng các ký tự khoảng trắng ở đầu và dòng mới bị xóa
Xóa các ký tự Khoảng trắng ở cuối
Chúng ta có thể sử dụng hàm rstrip[] để xóa các ký tự khoảng trắng ở cuối một cột
Một ví dụ như được hiển thị
df. tên_sản_phẩm . str . dải[]
Ở đây, đoạn mã trên sẽ xóa các ký tự khoảng trắng ở cuối. Một giá trị trả về ví dụ như được hiển thị
Xóa cả ký tự khoảng trắng ở đầu và cuối
Sử dụng hàm strip[], bạn cũng có thể xóa cả ký tự khoảng trắng ở đầu và cuối khỏi một cột bằng cách sử dụng hàm strip[]
Một ví dụ sử dụng như được hiển thị
df. tên_sản_phẩm . str . cởi bỏ[]
Trong trường hợp này, hàm sẽ trả về
Lưu ý cách xóa các ký tự khoảng trắng ở đầu và cuối khỏi cột
Sử dụng Thay thế
Bạn cũng có thể sử dụng hàm replace[] để xóa các ký tự khoảng trắng khỏi một cột
Ví dụ: để thay thế tất cả các ký tự tab từ một cột, chúng ta có thể thực hiện
df. tên_sản_phẩm . str . thay thế[' \t', '']
Trong trường hợp này, hàm sẽ lấy các ký tự tab và thay thế chúng bằng giá trị đã chỉ định
Đầu ra kết quả là như được hiển thị
Để xóa dấu cách và ký tự dòng mới
df. tên_sản_phẩm . str . thay thế[' \n . , ''] // remove newline
df.tên_sản_phẩm . str . thay thế[' ', ''] // remove spaces
chấm dứt
Bài viết này chỉ cho bạn nhiều cách khác nhau để xóa các ký tự khoảng trắng ở đầu và cuối khỏi Khung dữ liệu Pandas