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

Cách tạo cột mới cho DataFrame từ các cột đã có trong Python

DataFrame là cấu trúc dữ liệu 2 chiều, lưu dữ liệu dạng bảng, hàng và cột. Có thể hình dung như bảng SQL hoặc sheet Excel. Tạo bằng constructor:

pd.DataFrame(data, index, columns, dtype, copy)

Trước đây thấy cách tạo cột mới như Series rồi index vào DataFrame gốc. Hãy xem cách tạo cột dùng các cột đã có. Hữu ích khi cần tính toán trên cột có sẵn và lưu kết quả vào cột mới:

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']),
    'ef': pd.Series([56, 78, 32], index=['a', 'b', 'c'])
}
my_df = pd.DataFrame(my_data)
print("DataFrame là:")
print(my_df)

my_df['gh'] = my_df['ab'] + my_df['ef']
print("Sau khi cộng cột 0 và 2 vào DataFrame:")
print(my_df)

Đầu ra

DataFrame là:
    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

Sau khi cộng cột 0 và 2 vào DataFrame:
    ab  cd   ef   gh
a  1.0   1  56.0  57.0
b  8.0   2  78.0  86.0
c  7.0   0  32.0  39.0
d  NaN   9  NaN  NaN

Giải thích

  • Nhập thư viện cần thiết, đặt bí danh để dễ dùng.
  • Tạo dictionary value gồm key-value, value là Series.
  • Tạo nhiều dictionary value như vậy.
  • Dictionary truyền làm tham số cho DataFrame trong pandas.
  • DataFrame tạo bằng cách truyền dictionary làm tham số.
  • Cột mới được index vào DataFrame, cột 0 và 2 cộng tạo cột mới.
  • DataFrame in ra console.

Lưu ý - 'NaN' là 'Not a Number', nghĩa là giá trị [hàng, cột] cụ thể không có entry hợp lệ. Khi cộng cột có NaN, kết quả cũng là NaN (hàng d).

Mở rộng: Có thể dùng bất kỳ phép toán vector hóa: df['new'] = df['A'] * df['B'], df['new'] = df['A'].apply(func), df.assign(new_col=lambda x: x.A + x.B) (tạo bản sao).