1. 数值运算
当进行数值运算时,
pandas
会按照标签对齐元素:运算符会对标签相同的两个元素进行计算。对于DataFrame
,对齐会同时发生在行和列上。- 当某一方的标签不存在时,默认以
NaN
填充。缺失值会在运算过程中传播。
由于
NaN
是浮点数中的一个特殊值,因此结果的元素类型被转换为float64
- 结果的索引是双方索引的并集。
- 当某一方的标签不存在时,默认以
除了支持加减乘除等运算符之外,
pandas
还提供了对应的函数:add/sub/mul/div/mod(other, axis='columns', level=None, fill_value=None)
:other
:一个DataFrame/Series
或者一个array-like
,或者一个标量值axis
:指定操作的轴。可以为0/1/'index'/'columns'
。其意义是:操作发生在哪个轴上。fill_value
:指定替换掉NaN
的值。可以为None
(不替换),或者一个浮点值。注意:如果发现两个NaN
相加,则结果仍然还是NaN
,而并不会是两个fill_value
相加。level
:一个整数或者label
,用于多级索引的运算。
全部运算操作函数为:
add,sub,mul,div,truediv,floordiv,mod,pow,radd,rsub,rmul,rdiv,rtruediv,
rfloordiv,rmod,rpow # 这些的参数为 other,axis,level,fill_value
lt,gt,le,ge,ne,eq# 这些的参数为 ohter,axis,level
对于
DataFrame
和Series
的运算,默认会用DataFrame
的每一行与Series
运算。如果你希望使用DataFrame
的每一列与Series
运算,则必须使用二元操作函数,并且指定axis=0
(表示操作匹配的轴)。