Đôi khi cần lấy tổng của một cột cụ thể. Đây là lúc hàm sum dùng.
Cột cần tính tổng có thể truyền làm giá trị cho hàm sum. Chỉ số cột cũng có thể truyền để tìm tổng.
Hãy xem minh họa:
Ví dụ
import pandas as pd
my_data = {
'Name': pd.Series(['Tom', 'Jane', 'Vin', 'Eve', 'Will']),
'Age': pd.Series([45, 67, 89, 12, 23]),
'value': pd.Series([8.79, 23.24, 31.98, 78.56, 90.20])
}
print("DataFrame là:")
my_df = pd.DataFrame(my_data)
print(my_df)
print("Tổng cột 'age':")
print(my_df.sum(1))
Đầu ra
DataFrame là:
Name Age value
0 Tom 45 8.79
1 Jane 67 23.24
2 Vin 89 31.98
3 Eve 12 78.56
4 Will 23 90.20
Tổng cột 'age':
0 53.79
1 90.24
2 120.98
3 90.56
4 113.20
dtype: float64
Giải thích
- Nhập thư viện cần thiết, đặt bí danh để dễ dùng.
- Tạo dictionary của Series bao gồm key và value, value là cấu trúc Series.
- Dictionary này truyền làm tham số cho
DataFrametrongpandas. - In DataFrame ra console.
- Muốn tính tổng cột 'Age'.
- Tên cột cần tính tổng truyền làm tham số cho hàm
sum. - Tổng in ra console.
Sửa lỗi trong ví dụ gốc: Code dùng my_df.sum(1) (axis=1 = theo hàng) nhưng giải thích nói "tổng cột 'Age'". Thực tế:
df['Age'].sum()- Tổng cột 'Age' (kết quả: 236)df.sum(axis=0)hoặcdf.sum()- Tổng từng cộtdf.sum(axis=1)- Tổng từng hàng (kết quả ví dụ: 53.79, 90.24,...)
Cách đúng để lấy tổng cột 'Age': my_df['Age'].sum() hoặc my_df['Age'].sum(skipna=True).