Khóa học
Bạn không bao giờ bị bó buộc chỉ với dữ liệu hiện có. Thay vào đó, bạn có thể thêm các cột mới vào một DataFrame. Việc này có nhiều cách gọi, như chuyển đổi, biến đổi và kỹ thuật đặc trưng.
Bạn có thể tạo các cột mới từ đầu, nhưng cũng rất phổ biến là suy ra chúng từ các cột khác, ví dụ bằng cách cộng các cột lại với nhau hoặc đổi đơn vị đo.
Suy ra một cột
Dùng một bộ dữ liệu về chó, giả sử bạn muốn thêm một cột mới vào DataFrame để có chiều cao của mỗi con chó tính theo mét thay vì centimét.
Ở vế trái của dấu bằng, bạn dùng ngoặc vuông với tên cột mới muốn tạo, trong trường hợp này là height_m. Ở vế phải là phép tính.
dogs["height_m"] = dogs["height_cm"] / 100
print(dogs)
name breed color height_cm weight_kg date_of_birth height_m
0 Bella Labrador Brown 56 24 2013-07-01 0.56
1 Charlie Poodle Black 43 24 2016-09-16 0.43
2 Lucy Chow Chow Brown 46 24 2014-08-25 0.46
3 Cooper Schnauzer Gray 49 17 2016-09-16 0.49
4 Max Labrador Black 59 29 2016-09-16 0.59
5 Stella Chihuahua Tan 18 2 2016-09-16 0.18
6 Bernie St. Bernard White 77 74 2016-09-16 0.77
Lưu ý rằng cả cột hiện có và cột suy ra đều nằm trong dataframe bạn đã chỉnh sửa.
Thêm một cột
Trong ví dụ này, bạn sẽ tính chỉ số khối chó (doggy mass index) và thêm nó làm một cột vào dataframe của bạn. BMI là viết tắt của chỉ số khối cơ thể, được tính bằng cân nặng theo kilogram chia cho bình phương chiều cao theo mét.
dogs["height_m"] = dogs["weight_kg"] / dogs["height_m"] ** 2
print(dogs.head())
name breed color height_cm weight_kg date_of_birth height_m bmi
0 Bella Labrador Brown 56 24 2013-07-01 0.56 76.530612
1 Charlie Poodle Black 43 24 2016-09-16 0.43 129.799892
2 Lucy Chow Chow Brown 46 24 2014-08-25 0.46 113.421550
3 Cooper Schnauzer Gray 49 17 2016-09-16 0.49 70.803832
4 Max Labrador Black 59 29 2016-09-16 0.59 83.309394
Một lần nữa, cột mới nằm ở vế trái dấu bằng, nhưng lần này phép tính của chúng ta liên quan đến hai cột.
Thêm một cột với nhiều thao tác
Sức mạnh thực sự của pandas thể hiện khi bạn kết hợp tất cả kỹ năng đã học. Hãy cùng tìm ra tên của những chú chó gầy và cao.
Đầu tiên, để xác định chó gầy, bạn lấy tập con gồm những con có BMI nhỏ hơn 100. Tiếp theo, bạn sắp xếp chiều cao theo thứ tự giảm dần để đưa những con chó gầy cao nhất lên đầu.
Cuối cùng, lần này bạn chỉ giữ lại những cột mình quan tâm.
bmi_lt_100 = dogs[dogs["bmi"] < 100]
bmi_lt_100_height = bmi_lt_100.short_values("height_cm", ascending=False)
bmi_lt_100_height[["name", "height_cm", "bmi"]]
name height_cm bmi
4 Max 59 83.309394
0 Bella 56 76.530612
3 Cooper 49 70.803832
5 Stella 18 61.728395
Ở đây, bạn có thể thấy rằng Max là chú chó cao nhất với BMI dưới 100.
Ví dụ tương tác
Trong ví dụ dưới đây, bạn thêm một cột mới vào DataFrame homelessness, tên là total, chứa tổng của các cột individuals và family_members. Sau đó, thêm một cột khác vào homelessness, tên là p_individuals, chứa tỷ lệ người vô gia cư ở mỗi bang là cá nhân. Cuối cùng, in dataframe homelessness.
# Add total col as sum of individuals and family_members
homelessness["total"] = homelessness["individuals"] + homelessness["family_members"]
# Add p_individuals col as proportion of individuals
homelessness["p_individuals"] = homelessness["individuals"] / homelessness["total"]
# See the result
print(homelessness)
Khi chạy đoạn mã trên, bạn sẽ nhận được kết quả sau:
region state individuals family_members state_pop total p_individuals
0 East South Central Alabama 2570.0 864.0 4887681 3434.0 0.748
1 Pacific Alaska 1434.0 582.0 735139 2016.0 0.711
2 Mountain Arizona 7259.0 2606.0 7158024 9865.0 0.736
3 West South Central Arkansas 2280.0 432.0 3009733 2712.0 0.841
4 Pacific California 109008.0 20964.0 39461588 129972.0 0.8
...
48 South Atlantic West Virginia 1021.0 222.0 1804291 1243.0 0.821
49 East North Central Wisconsin 2740.0 2167.0 5807406 4907.0 0.558
50 Mountain Wyoming 434.0 205.0 577601 639.0 0.679
Hãy xem thêm hướng dẫn của DataCamp về Cách Xóa Cột trong Pandas.
Để tìm hiểu thêm về việc thêm cột mới trong pandas, vui lòng xem video này từ khóa học Data Manipulation with pandas của chúng tôi.
Nội dung này được trích từ khóa học Data Manipulation with pandas của DataCamp do Maggie Matsui và Richie Cotton biên soạn.