DataFrame là cấu trúc dữ liệu 2 chiều, lưu dạng bảng hàng và cột. Hình dung như bảng SQL hoặc Excel. Tạo bằng constructor:
pd.DataFrame(data, index, columns, dtype, copy)
Cột mới có thể thêm vào DataFrame nhiều cách. Xem cách tạo cột bằng cách trước tạo Series rồi truyền làm cột thêm cho DataFrame hiện có.
Ví dụ
import pandas as pd
my_data = {
'ab': pd.Series([1, 8, 7], index=['a', 'b', 'c']),
'cd': pd.Series([1, 2, 0, 9], index=['a', 'b', 'c', 'd'])
}
my_df = pd.DataFrame(my_data)
print("DataFrame là:")
print(my_df)
print("Thêm cột mới bằng cách truyền Series:")
my_df['ef'] = pd.Series([56, 78, 32], index=['a', 'b', 'c'])
print("Sau khi thêm cột mới:")
print(my_df)
Đầu ra
DataFrame là:
ab cd
a 1.0 1
b 8.0 2
c 7.0 0
d NaN 9
Thêm cột mới bằng cách truyền Series:
Sau khi thêm cột mới:
ab cd ef
a 1.0 1 56.0
b 8.0 2 78.0
c 7.0 0 32.0
d NaN 9 NaN
Giải thích
- Nhập thư viện cần thiết, đặt bí danh để dễ dùng.
- Tạo dictionary cấu trúc dữ liệu, key-value pair trong một dictionary.
- Tạo nhiều dictionary lưu trong danh sách.
- 'value' trong key-value thực chất là Series.
- Index cũng là danh sách giá trị tùy chỉnh.
- Dictionary truyền làm tham số cho
DataFrametrongpandas. - DataFrame tạo bằng truyền list dictionary làm tham số.
- Cột mới tạo và khởi tạo giá trị.
- Cột mới index vào DataFrame gốc.
- Cách này cột mới gắn vào DataFrame.
- DataFrame in ra console.
Lưu ý - 'NaN' là 'Not a Number', nghĩa là [hàng, cột] cụ thể không có entry hợp lệ. Hàng 'd' cột 'ef' là NaN vì Series mới chỉ có index a,b,c.
Các cách thêm cột khác:
df['new'] = [1,2,3,4]- Từ list (cần độ dài khớp)df['new'] = scalar- Giá trị chuẩn cho tất cả hàngdf.assign(new_col=values)- Trả về DataFrame mới (không sửa gốc)df.insert(loc, 'col', values)- Chèn tại vị trí cụ thể