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

Cách thêm cột mới vào DataFrame hiện có trong Python

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 DataFrame trong pandas.
  • 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àng
  • df.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ể