Khóa học
.lower() là một phương thức tích hợp sẵn của Python, chủ yếu dùng để xử lý chuỗi. Phương thức .lower() không nhận đối số và trả về phiên bản chữ thường của chuỗi đã cho bằng cách chuyển từng ký tự viết hoa thành chữ thường. Nếu chuỗi không có ký tự viết hoa, nó sẽ trả về chuỗi gốc.
Trong ngữ cảnh pandas, phương thức .str.lower() là một hàm chuyên biệt được thiết kế để hoạt động trên pandas Series (như các cột trong DataFrame). Nó áp dụng chức năng .lower() cho từng phần tử chuỗi trong Series, trở thành công cụ thiết yếu để chuẩn hóa dữ liệu văn bản.
Luyện tập chuyển đổi chữ hoa/thường trong Python với bài tập thực hành này.
Sử dụng str.lower() trong Pandas
Khi làm việc với pandas DataFrame, phương thức str.lower() thường được áp dụng cho cả một cột chuỗi để chuẩn hóa định dạng văn bản. Hãy xem một ví dụ để hiểu cách hoạt động.
Dưới đây là một tập dữ liệu mẫu thể hiện giá của các loại trái cây khác nhau:
import pandas as pd
# Create a DataFrame
fruit_price = pd.DataFrame({
'name': [
'Apple', 'Banana', 'Orange', 'Watermelon',
'Plum', 'Blueberries', 'Dragonfruit', 'Kiwi'
],
'price_usd': [0.88, 0.23, 0.68, 3.98, 0.96, 5.16, 5.27, 1.12]
})
name price_usd
0 Apple 0.88
1 Banana 0.23
2 Orange 0.68
3 Watermelon 3.98
4 Plum 0.96
5 Blueberries 5.16
6 Dragonfruit 5.27
7 Kiwi 1.12
Chúng ta có thể áp dụng phương thức str.lower() để chuyển tất cả giá trị trong cột name thành chữ thường. Cách thực hiện như sau:
fruit_price['name'] = fruit_price['name'].str.lower()
print(fruit_price)
Kết quả đầu ra:
name price_usd
0 apple 0.88
1 banana 0.23
2 orange 0.68
3 watermelon 3.98
4 plum 0.96
5 blueberries 5.16
6 dragonfruit 5.27
7 kiwi 1.12
Như bạn thấy, tất cả giá trị trong cột name giờ đã được chuẩn hóa về chữ thường.
Ví dụ tương tác: Thay đổi chữ hoa/thường trong một tập dữ liệu phim
Hãy khám phá một ví dụ khác. Giả sử chúng ta đang làm việc với một tập dữ liệu phim. Mỗi hàng đại diện cho một bộ phim, với các cột cho tiêu đề (movie_title), thể loại (movie_genre) và thời lượng (movie_length). Đây là tập dữ liệu ban đầu:
import pandas as pd
# Create a DataFrame
movies = pd.DataFrame({
'movie_title': [
'The Sumif All Fears', 'The Seaborn Identity', 'The Matrices',
"There's Something About Merging", 'Mamma Median!',
'Harry Plotter', 'Kung Fu Pandas', 'While You Were Sorting',
'10 Things I Hate About UNIX'
],
'movie_genre': [
'Action', 'Action', 'Action', 'Comedy', 'Comedy',
'Kids', 'Kids', 'Romance', 'Romance'
],
'movie_length': [124, 119, 136, 119, 108, 159, 92, 103, 97]
})
Chúng ta muốn chuẩn hóa văn bản trong cột movie_title bằng cách chuyển tất cả tiêu đề thành chữ thường. Sau đây là cách thực hiện với phương thức .str.lower():
# Change movie_title column to lowercase
movies['movie_title'] = movies['movie_title'].str.lower()
# Look at the change
print(movies)
Khi bạn chạy đoạn mã trên, kết quả sẽ như sau:
movie_title movie_genre movie_length
0 the sumif all fears Action 124
1 the seaborn identity Action 119
2 the matrices Action 136
3 there's something about merging Comedy 119
4 mamma median! Comedy 108
5 harry plotter Kids 159
6 kung fu pandas Kids 92
7 while you were sorting Romance 103
8 10 things i hate about unix Romance 97
Bằng cách áp dụng .str.lower(), chúng ta đảm bảo cột movie_title được định dạng thống nhất, hữu ích cho các tác vụ như lọc, so sánh hoặc thực hiện các thao tác không phân biệt hoa/thường.
Để tìm hiểu thêm về cách ghép các pandas dataframe trong Python, vui lòng xem video này từ khóa học Python for Spreadsheet Users của chúng tôi.
Nội dung này được trích từ khóa học Python for Spreadsheet Users của DataCamp do Chris Cardillo biên soạn.
Câu hỏi thường gặp về Lowercase trong Python
Lowercase trong Python là gì?
Đây là kiểu chữ khi tất cả ký tự trong chuỗi đều là chữ thường. Ngược lại với chữ thường là chữ hoa, khi tất cả ký tự trong chuỗi đều viết hoa. Nếu một chuỗi có cả chữ thường và chữ hoa, đó được gọi là kiểu chữ hỗn hợp.
Cách chuyển một chuỗi thành chữ thường trong Python?
Sử dụng phương thức chuỗi tích hợp của Python là lower() trên chuỗi hoặc biến đại diện cho chuỗi đó. Ví dụ, 'PythoN'.lower() sẽ trả về 'python'. Phương thức này không nhận bất kỳ đối số nào.
Cách chuyển tất cả chuỗi trong một danh sách Python thành chữ thường?
Sử dụng list comprehension. Ví dụ, [x.lower() for x in ['Python', 'R', 'SQL']] sẽ trả về ['python', 'r', 'sql']. Lưu ý quan trọng là tất cả phần tử trong danh sách phải thuộc kiểu chuỗi, nếu không chương trình sẽ báo lỗi.
Cách chuyển tất cả chuỗi trong một Python Series thành chữ thường?
Có thể dùng list comprehension với Series ([x.lower() for x in pd.Series(['Python', 'R', 'SQL'])]), nhưng cách tốt hơn là dùng phương thức Series.str.lower(). Ví dụ, pd.Series(['Python', 'R', 'SQL']).str.lower() sẽ trả về:
0 python
1 r
2 sql
dtype: object
Một lưu ý quan trọng là tất cả giá trị của đối tượng Series phải thuộc kiểu chuỗi và không được có giá trị thiếu, nếu không chương trình sẽ báo lỗi.
Cách kiểm tra liệu tất cả chữ cái trong một chuỗi Python có phải chữ thường không?
Sử dụng phương thức chuỗi tích hợp islower() trên chuỗi hoặc biến đại diện cho chuỗi đó. Ví dụ, 'Python'.islower() sẽ trả về False vì có một chữ cái viết hoa trong chuỗi, trong khi 'python'.islower() sẽ trả về True.
Phương thức lower() và islower() trả về kiểu dữ liệu nào?
Phương thức lower() trả về một chuỗi, trong khi islower() trả về một giá trị boolean.
Các phương thức lower() và islower() có hoạt động với số không?
Không. Áp dụng các phương thức này lên số (ví dụ, 1.lower()) hoặc bất kỳ kiểu dữ liệu nào không phải chuỗi sẽ gây lỗi.
Điều gì xảy ra nếu chúng ta áp dụng phương thức lower() hoặc islower() lên chuỗi chứa chữ số, khoảng trắng hoặc ký tự đặc biệt?
Phương thức lower() giữ nguyên các ký tự như vậy, còn islower() bỏ qua chúng. Ví dụ, 'Python1'.lower() sẽ trả về 'python1', 'Python & R'.lower() sẽ trả về 'python & r', và 'python & r'.islower() sẽ trả về True. Nó vẫn hoạt động với chuỗi chứa emoji: 'I ❤️ Python'.lower() sẽ trả về 'i ❤️ python'.
Các phương thức đối nghịch với lower() và islower() để chuyển chuỗi thành chữ hoa là gì?
upper() và isupper(). Cú pháp và trường hợp sử dụng của các phương thức này tương tự lower() và islower(); chúng cũng chỉ hoạt động với kiểu dữ liệu chuỗi và bỏ qua chữ số, khoảng trắng hoặc ký tự đặc biệt trong chuỗi. Để chuyển tất cả chuỗi trong một Python Series thành chữ hoa, hãy dùng phương thức Series.str.upper().