Python pandas.DataFrame.sum函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.sum方法的使用。

DataFrame.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs) [source]

返回所请求轴的值之和。

这等效于方法numpy.sum

参数:

axis {index (0), columns (1)}

要应用于的函数的轴(axis)。

skipna bool, 默认为True

当计算结果时,排除NA / null值。

level intlevel name, 默认为None

如果轴是多索引(层次化),则沿着特定级别计数,

并折叠成一个Series

numeric_only bool, 默认为None

只包括floatintboolean列。

如果 None,,将尝试使用一切,

然后只使用数字数据。没有在Series中实现。

min_countint, 默认为 0

执行操作所需的有效值数量。

如果少于min_count非NA值,则结果将为NA。

0.22.0版中的新增功能:添加了默认值0。

这意味着all-NA或空Series的总和为0,

all-NA或空Series的乘积为1

**kwargs

传递给函数的其他关键字参数。

返回值:

SeriesDataFrame (如果指定level)

例子

>>> idx = pd.MultiIndex.from_arrays([
...     ['warm', 'warm', 'cold', 'cold'],
...     ['dog', 'falcon', 'fish', 'spider']],
...     names=['blooded', 'animal'])
>>> s = pd.Series([4, 2, 0, 8], name='legs', index=idx)
>>> s
blooded  animal
warm     dog       4
         falcon    2
cold     fish      0
         spider    8
Name: legs, dtype: int64
>>> s.sum()
14

使用级别名称和索引求和

>>> s.sum(level='blooded')
blooded
warm    6
cold    8
Name: legs, dtype: int64
>>> s.sum(level=0)
blooded
warm    6
cold    8
Name: legs, dtype: int64

默认情况下,空系列或全NA系列的总和为0

>>> pd.Series([]).sum()  # min_count=0 is the default
0.0

可以通过min_count参数来控制。例如,如果您希望一个空序列的总和为NaN,请传递min_count=1

>>> pd.Series([]).sum(min_count=1)
nan

由于有了该skipna参数,因此可以完全min_count处理全NA和空序列

>>> pd.Series([np.nan]).sum()
0.0
>>> pd.Series([np.nan]).sum(min_count=1)
nan

推荐阅读
cjavapy编程之路首页