DataFrame.sum()
是 pandas 库中的一个方法,用于计算 DataFrame 或 Series 中数值的总和。它可以沿着指定的轴(行或列)进行求和运算,并支持多种参数来控制求和的行为。
DataFrame.sum(axis=0, skipna=True, numeric_only=False, min_count=0, **kwargs)
axis
: 指定求和方向skipna
: 是否排除 NA/null 值,默认为 Truenumeric_only
: 是否只包含数值列,默认为 Falsemin_count
: 执行操作所需的有效值的最小数量import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, 7, 8],
'C': [9, 10, 11, 12]
})
# 默认对每列求和
print(df.sum())
"""
A 7.0
B 20.0
C 42.0
dtype: float64
"""
# 对每行求和
print(df.sum(axis=1))
"""
0 15.0
1 12.0
2 18.0
3 24.0
dtype: float64
"""
# 不跳过缺失值
print(df.sum(skipna=False))
"""
A NaN
B NaN
C 42.0
dtype: float64
"""
# 设置最小有效值数量
print(df.sum(min_count=3))
"""
A NaN
B 20.0
C 42.0
dtype: float64
"""
df['D'] = ['a', 'b', 'c', 'd']
print(df.sum(numeric_only=True))
"""
A 7.0
B 20.0
C 42.0
dtype: float64
"""
原因:数据中包含缺失值且 skipna=False,或者有效值数量不足 min_count
解决方案:
原因:numeric_only=False(默认)
解决方案:
原因:DataFrame 过大
解决方案:
原因:可能数据类型不是数值型
解决方案:
df = pd.DataFrame({
'Category': ['A', 'B', 'A', 'B'],
'Values': [10, 20, 30, 40]
})
print(df.groupby('Category').sum())
"""
Values
Category
A 40
B 60
"""
print(df.agg(['sum', 'mean', 'max']))
"""
A B C
sum 7.0 20.0 42.0
mean 2.333333 6.666667 10.5
max 4.0 8.0 12.0
"""
DataFrame.sum()
是 pandas 数据分析中最常用的方法之一,掌握它的各种用法和参数设置对于高效的数据处理至关重要。