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

DataFrame.div(self,other,axis ='columns',level = None,fill_value = None)

获取数据帧和其他元素的浮动除法(二元运算符truediv)。

相当于,但支持将fill_value替换为其中一个输入中的缺失数据。使用反向版本,rtruedivdataframe/other在灵活的包装器(add,sub,mul,div,mod,pow)中算术运算符:+,-,*,/,//,%,**

参数

other : 标量 (scalar),序列(sequence),Series或DataFrame

任何单个或多个元素数据结构或类似列表的对象。

axis : {0 或 ‘index’, 1 或 ‘columns’}

是否通过索引 (0 or ‘index’) 或列(1 或 ‘columns’)进行比较。

对于Series输入,轴匹配Series索引。

level : int或label

跨级别广播,匹配传递的MultiIndex级别的索引值。

fill_value : float或None,默认为None

在计算之前使用此值填充现有缺失(NaN)

值以及成功DataFrame对齐所需的任何新元素。

如果缺少相应DataFrame位置中的数据,则结果将丢失。

返回

DataFrame

算术运算的结果。

Note

不匹配的指数将合并在一起。

例子

>>> df = pd.DataFrame({'angles': [0, 3, 4],
... 'degrees': [360, 180, 360]},
... index=['circle', 'triangle', 'rectangle'])
>>> df
angles degrees
circle 0 360
triangle 3 180
rectangle 4 360

添加带有运算符版本的标量,返回相同的结果

>>> df + 1
angles degrees
circle 1 361
triangle 4 181
rectangle 5 361
>>> df.add(1)
angles degrees
circle 1 361
triangle 4 181
rectangle 5 361

用反向版除以常数

>>> df.div(10)
angles degrees
circle 0.0 36.0
triangle 0.3 18.0
rectangle 0.4 36.0
>>> df.rdiv(10)
angles degrees
circle inf 0.027778
triangle 3.333333 0.055556
rectangle 2.500000 0.027778

使用运算符版本减去列表和逐个轴

>>> df - [1, 2]
angles degrees
circle -1 358
triangle 2 178
rectangle 3 358
>>> df.sub([1, 2], axis='columns')
angles degrees
circle -1 358
triangle 2 178
rectangle 3 358
>>> df.sub(pd.Series([1, 1, 1], index=['circle', 'triangle', 'rectangle']),
... axis='index')
angles degrees
circle -1 359
triangle 2 179
rectangle 3 359

将运算符版本的不同形状的DataFrame相乘

>>> other = pd.DataFrame({'angles': [0, 3, 4]},
... index=['circle', 'triangle', 'rectangle'])
>>> other
angles
circle 0
triangle 3
rectangle 4

>>> df * other
angles degrees
circle 0 NaN
triangle 9 NaN
rectangle 16 NaN
>>> df.mul(other, fill_value=0)
angles degrees
circle 0 0.0
triangle 9 0.0
rectangle 16 0.0

按级别除以MultiIndex

>>> df_multindex = pd.DataFrame({'angles': [0, 3, 4, 4, 5, 6],
... 'degrees': [360, 180, 360, 360, 540, 720]},
... index=[['A', 'A', 'A', 'B', 'B', 'B'],
... ['circle', 'triangle', 'rectangle',
... 'square', 'pentagon', 'hexagon']])
>>> df_multindex
angles degrees
A circle 0 360
triangle 3 180
rectangle 4 360
B square 4 360
pentagon 5 540
hexagon 6 720
>>> df.div(df_multindex, level=1, fill_value=0)
angles degrees
A circle NaN 1.0
triangle 1.0 1.0
rectangle 1.0 1.0
B square 0.0 0.0
pentagon 0.0 0.0
hexagon 0.0 0.0