Hướng dẫn Pandas Python: Thêm/Xóa cột và hàng từ DataFrame
Nội dung
Bảng table
- Giới thiệu
- Thêm cột vào DataFrame
- Thêm cột đơn giản
- Thêm cột bằng cách kết hợp thông tin từ nhiều cột
- Thêm cột bằng cách sử dụng phương pháp apply
- Xóa cột khỏi DataFrame
- Xóa cột đơn giản
- Xóa cột bằng cách sử dụng phương pháp drop
- Thêm hàng vào DataFrame
- Thêm hàng đơn giản
- Kết hợp hai DataFrame thành một
- Xóa hàng khỏi DataFrame
- Xóa hàng dựa trên chỉ mục
- Xóa hàng dựa trên điều kiện
Bài viết
Thêm và Xóa Cột và Hàng trong DataFrame sử dụng Pandas
Trong bài viết này, chúng ta sẽ tìm hiểu cách thêm và xóa cột và hàng từ DataFrame của chúng ta bằng sử dụng thư viện Pandas trong Python. Pandas là một thư viện mạnh mẽ để làm việc với dữ liệu bảng và có nhiều chức năng hữu ích cho việc thao tác và phân tích dữ liệu. Chúng ta sẽ đi qua từng bước một và minh họa từng thao tác bằng các ví dụ cụ thể.
1. Giới thiệu
Trong bài viết này, chúng ta sẽ tìm hiểu về cách thêm và xóa cột và hàng từ DataFrame của chúng ta bằng sử dụng thư viện Pandas trong Python. DataFrame là một cấu trúc dữ liệu hai chiều, tương tự như một bảng trong cơ sở dữ liệu quan hệ, cho phép chúng ta lưu trữ và thao tác dữ liệu theo chiều ngang và dọc. Thư viện Pandas cung cấp các phương thức và hàm mạnh mẽ để thực hiện các thao tác này một cách dễ dàng và hiệu quả.
2. Thêm cột vào DataFrame
2.1. Thêm cột đơn giản
Để thêm một cột mới vào DataFrame, chúng ta có thể sử dụng cú pháp sau:
df['new_column'] = values
Trong đó, df
là DataFrame mà chúng ta muốn thêm cột, 'new_column'
là tên của cột mới và values
là một chuỗi giá trị mà chúng ta muốn gán cho cột mới này. Ví dụ sau đây minh họa cách thêm một cột mới vào DataFrame:
import pandas as pd
data = {'name': ['John', 'Jane', 'Mike'],
'age': [25, 30, 35]}
df = pd.DataFrame(data)
df['gender'] = ['Male', 'Female', 'Male']
print(df)
Kết quả:
name age gender
0 John 25 Male
1 Jane 30 Female
2 Mike 35 Male
Thông qua việc sử dụng cú pháp df['new_column'] = values
, chúng ta đã thêm một cột mới có tên là 'gender'
vào DataFrame. Cột mới này chứa thông tin về giới tính ('Male'
và 'Female'
). Chúng ta có thể thấy rằng cả tên, tuổi và giới tính được lưu trữ dưới dạng một bảng có các cột tương ứng.
2.2. Thêm cột bằng cách kết hợp thông tin từ nhiều cột
Đôi khi chúng ta muốn kết hợp thông tin từ nhiều cột trong DataFrame để tạo ra một cột mới. Chúng ta có thể làm điều này bằng cách sử dụng phép toán trên các cột.
Ví dụ sau đây minh họa cách kết hợp thông tin từ cột 'first_name'
và 'last_name'
để tạo ra cột 'full_name'
:
df['full_name'] = df['first_name'] + ' ' + df['last_name']
print(df)
Kết quả:
first_name last_name full_name
0 John Doe John Doe
1 Jane Doe Jane Doe
2 Mike Smith Mike Smith
Thông qua việc sử dụng phép cộng trên các cột (df['first_name'] + ' ' + df['last_name']
), chúng ta đã kết hợp thông tin từ hai cột 'first_name'
và 'last_name'
để tạo ra cột mới có tên là 'full_name'
. Cột mới này chứa dữ liệu về tên đầy đủ của mỗi người trong DataFrame.
2.3. Thêm cột bằng cách sử dụng phương pháp apply
Nếu chúng ta muốn thực hiện một phân tích toán học hoặc thống kê trên một cột hiện có và tạo ra một cột mới từ kết quả, chúng ta có thể sử dụng phương pháp apply
.
Ví dụ sau đây minh họa cách thực hiện phép tính bình phương trên một cột và tạo ra một cột mới từ kết quả:
df['age_squared'] = df['age'].apply(lambda x: x**2)
print(df)
Kết quả:
name age age_squared
0 John 25 625
1 Jane 30 900
2 Mike 35 1225
Trong ví dụ này, chúng ta sử dụng phương pháp apply
để thực hiện phép tính bình phương trên mỗi giá trị trong cột 'age'
. Kết quả được gán vào cột mới có tên là 'age_squared'
, chứa giá trị bình phương tương ứng với mỗi giá trị trong cột 'age'
.
3. Xóa cột khỏi DataFrame
3.1. Xóa cột đơn giản
Để xóa một cột khỏi DataFrame, chúng ta có thể sử dụng phương pháp drop
:
df = df.drop('column_name', axis=1)
Trong đó, df
là DataFrame mà chúng ta muốn xóa cột khỏi, 'column_name'
là tên của cột mà chúng ta muốn xóa và axis=1
chỉ định rằng chúng ta muốn xóa cột (axis=0 nếu chúng ta muốn xóa hàng). Ví dụ sau đây minh họa cách xóa một cột khỏi DataFrame:
df = df.drop('gender', axis=1)
print(df)
Kết quả:
name age
0 John 25
1 Jane 30
2 Mike 35
Thông qua việc sử dụng df.drop('gender', axis=1)
, chúng ta đã xóa cột 'gender'
khỏi DataFrame. Kết quả là DataFrame mới chỉ chứa hai cột: 'name'
và 'age'
.
3.2. Xóa cột bằng cách sử dụng phương pháp drop
Đối với các tác vụ xóa phức tạp hơn, chúng ta có thể sử dụng phương pháp drop
. Ví dụ sau đây minh họa cách xóa nhiều cột cùng một lúc:
df = df.drop(['column1', 'column2', 'column3'], axis=1)
print(df)
Kết quả:
name age
0 John 25
1 Jane 30
2 Mike 35
Thông qua df.drop(['column1', 'column2', 'column3'], axis=1)
, chúng ta đã xóa cả cột 'column1'
, 'column2'
và 'column3'
khỏi DataFrame. Kết quả là DataFrame mới chỉ chứa hai cột: 'name'
và 'age'
.
4. Thêm hàng vào DataFrame
4.1. Thêm hàng đơn giản
Để thêm một hàng mới vào DataFrame, chúng ta có thể sử dụng phương pháp append
:
df = df.append(new_row, ignore_index=True)
Trong đó, df
là DataFrame mà chúng ta muốn thêm hàng vào, new_row
là hàng mới mà chúng ta muốn thêm và ignore_index=True
chỉ định rằng chúng ta muốn DataFrame tự động gán chỉ mục cho hàng mới. Ví dụ sau đây minh họa cách thêm một hàng mới vào DataFrame:
new_row = {'name': 'Sam', 'age': 40}
df = df.append(new_row, ignore_index=True)
print(df)
Kết quả:
name age
0 John 25
1 Jane 30
2 Mike 35
3 Sam 40
Thông qua df.append(new_row, ignore_index=True)
, chúng ta đã thêm một hàng mới có tên là 'Sam'
và độ tuổi là 40
vào DataFrame. Kết quả là DataFrame mới chứa bốn hàng.
4.2. Kết hợp hai DataFrame thành một
Đôi khi chúng ta muốn kết hợp hai DataFrame lại với nhau bằng cách nối các hàng của một DataFrame vào cuối của DataFrame khác. Chúng ta có thể làm điều này bằng cách sử dụng phương pháp concat
:
df = pd.concat([df1, df2], ignore_index=True)
Trong đó, df1
và df2
là hai DataFrame mà chúng ta muốn kết hợp và ignore_index=True
chỉ định rằng chúng ta muốn DataFrame tự động gán chỉ mục cho hàng mới. Ví dụ sau đây minh họa cách kết hợp hai DataFrame lại với nhau:
df1 = pd.DataFrame({'name': ['John', 'Jane'], 'age': [25, 30]})
df2 = pd.DataFrame({'name': ['Mike', 'Sam'], 'age': [35, 40]})
df = pd.concat([df1, df2], ignore_index=True)
print(df)
Kết quả:
name age
0 John 25
1 Jane 30
2 Mike 35
3 Sam 40
Thông qua pd.concat([df1, df2], ignore_index=True)
, chúng ta đã kết hợp hai DataFrame df1
và df2
lại với nhau. Kết quả là DataFrame mới chứa bốn hàng.
5. Xóa hàng khỏi DataFrame
5.1. Xóa hàng dựa trên chỉ mục
Để xóa một hàng khỏi DataFrame dựa trên chỉ mục, chúng ta có thể sử dụng phương pháp drop
:
df = df.drop(index)
Trong đó, df
là DataFrame mà chúng ta muốn xóa hàng khỏi và index
là chỉ mục của hàng mà chúng ta muốn xóa. Ví dụ sau đây minh họa cách xóa một hàng dựa trên chỉ mục:
df = df.drop(2)
print(df)
Kết quả:
name age
0 John 25
1 Jane 30
3 Sam 40
Thông qua df.drop(2)
, chúng ta đã xóa hàng có chỉ mục 2
khỏi DataFrame. Kết quả là DataFrame mới chỉ chứa ba hàng.
5.2. Xóa hàng dựa trên điều kiện
Đôi khi chúng ta muốn xóa các hàng trong DataFrame dựa trên một điều kiện nào đó. Chúng ta có thể làm điều này bằng cách sử dụng phương pháp drop
và sử dụng một biểu thức điều kiện để chọn hàng để xóa.
Ví dụ sau đây minh họa cách xóa các hàng có giá trị một trường nào đó bằng một giá trị nhất định:
df = df.drop(df[df['field'] == value].index)
print(df)
Kết quả:
name age
0 John 25
1 Jane 30
Trong ví dụ này, chúng ta sử dụng df[df['field'] == value]
để chọn các hàng trong DataFrame mà có giá trị của trường 'field'
bằng value
. Kết quả trả về là một DataFrame con chỉ chứa các hàng thỏa mãn điều kiện. Tiếp theo, chúng ta sử dụng index
để lấy chỉ mục của các hàng này và sau đó sử dụng df.drop
để xóa các hàng này khỏi DataFrame ban đầu. Kết quả là DataFrame mới chỉ chứa hai hàng.