Pandas 对给定列求DataFrame列之和
在本文中,我们将介绍如何利用Pandas对给定的DataFrame的列求和。
阅读更多:Pandas 教程
DataFrame的sum()方法
在Pandas中,DataFrame的sum()方法可以对给定的列进行求和操作。下面是一个示例,对DataFrame的两个列进行求和:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
'age': [25, 32, 18, 47, 21],
'height': [161, 184, 173, 176, 162],
'weight': [55, 73, 66, 80, 60]}
df = pd.DataFrame(data)
result = df[['age', 'height']].sum()
print(result)
输出结果为:
age 143
height 856
dtype: int64
在上面的示例中,我们先定义了一个包含’name’, ‘age’, ‘height’, ‘weight’四列的DataFrame。然后,我们利用DataFrame的sum()方法对’age’和’height’两列进行求和操作,最后将结果输出。
sum()方法的参数
sum()方法有一些可选参数,可以控制对哪些列进行求和操作。这些参数包括:
axis: 默认为0,表示按列进行求和操作。如果设置为1,则表示按行求和。
skipna: 默认为True,表示忽略缺失值NaN。如果设置为False,则表示将缺失值也计入求和操作。
下面是一个示例,通过设置skipna参数为False,将缺失值也计入求和操作:
import numpy as np
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
'age': [25, 32, np.nan, 47, 21],
'height': [161, 184, 173, np.nan, 162],
'weight': [55, 73, 66, 80, np.nan]}
df = pd.DataFrame(data)
print(df.sum(skipna=False))
输出结果为:
age NaN
height NaN
weight NaN
dtype: float64
可以看到,由于设置了skipna参数为False,缺失值被计入了求和操作中,因此结果为NaN。
对DataFrame的所有列求和操作
如果需要对DataFrame的所有列进行求和操作,可以使用DataFrame的apply()方法,结合sum()方法进行实现。
下面是一个示例,对DataFrame的所有列进行求和操作:
import pandas as pd
import numpy as np
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
'age': [25, 32, 18, 47, 21],
'height': [161, 184, 173, 176, 162],
'weight': [55, 73, 66, 80, 60]}
df = pd.DataFrame(data)
result = df.apply(lambda x: x.sum())
print(result)
输出结果为:
name AliceBobCharlieDavidElla
age 143
height 856
weight 334
dtype: object
在上面的示例中,我们利用了lambda表达式对每一列进行求和操作,然后使用apply()方法将其应用到DataFrame的每一列中。
总结
本文介绍了如何利用Pandas对DataFrame进行列求和操作。通过sum()方法,可以对DataFrame指定的列进行求和操作,也可以使用apply()方法将sum()方法应用到所有列中。同时,我们也介绍了sum()方法的可选参数,可以用于控制求和操作的行为。