Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Thêm cột mới vào DataFrame Pandas (insert, assign)

Pandas DataFrame là cấu trúc dữ liệu 2 chiều (bảng). Bài này hướng dẫn thêm cột mới vào DataFrame hiện có.

Tạo DataFrame ban đầu

import pandas as pd

s = pd.Series([6, 8, 3, 1, 12])
df = pd.DataFrame(s, columns=['Month_No'])
print(df)

Kết quả

   Month_No
0         6
1         8
2         3
3         1
4        12

Cách 1: insert() - Thêm cột tại vị trí cụ thể

df.insert(1, "No_of_days", [30, 31, 31, 31, 31], allow_duplicates=False)
print(df)

Kết quả

   Month_No  No_of_days
0         6          30
1         8          31
2         3          31
3         1          31
4        12          31

insert(loc, column, value): loc = index vị trí chèn. Sửa đổi in-place.

Cách 2: assign() - Tạo DataFrame mới với cột thêm

df = pd.DataFrame(s, columns=['Month_No'])
df = df.assign(No_of_days=[30, 31, 31, 31, 31])
print(df)

Kết quả

   Month_No  No_of_days
0         6          30
1         8          31
2         3          31
3         1          31
4        12          31

assign() trả về DataFrame mới, không sửa đổi gốc (functional style).

Cách 3: Gán trực tiếp (Phổ biến nhất)

df['No_of_days'] = [30, 31, 31, 31, 31]
# Hoặc từ Series
df['No_of_days'] = pd.Series([30, 31, 31, 31, 31], index=df.index)

Cách 4: Dùng phép toán trên cột hiện có

df['Qty_doubled'] = df['Qty'] * 2
df['Is_high'] = df['Qty'] > 5

So sánh

Phương phápIn-place?Vị trí tùy chỉnh?Trường hợp dùng
df['col'] = ...CóKhông (luôn cuối)Phổ biến nhất, đơn giản
insert()CóCóCần kiểm soát thứ tự cột
assign()KhôngKhông (luôn cuối)Chuỗi xử lý (method chaining), functional