学科分类
目录
数据分析

算术运算与数据对齐

Pandas执行算术运算时,会先按照索引进行对齐,对齐以后再进行相应的运算,没有对齐的位置会用NaN进行补齐。其中,Series是按行索引对齐的,DataFrame是按行索引、列索引对齐的。

假设有两个Series对象,创建它们的示例代码如下。

In [45]: obj_one = pd.Series(range(10, 13), index=range(3)) 
         obj_one 
Out[45]: 
0  10
1  11
2  12
dtype: int64
In [46]: obj_two = pd.Series(range(20, 25), index=range(5))
         obj_two
Out[46]: 
0  20
1  21
2  22
3  23
4  24
dtype: int32

上述示例中创建了两个Series对象:obj_one和obj_two,从输出结果可以看出,obj_one比obj_two少两行数据。

如果要对obj_one与obj_two进行加法运算,则会将它们按照索引先进行对齐,对齐的位置进行加法运算,没有对齐的位置使用NAN值进行填充,具体代码如下。

In [47]: obj_one + obj_two  # 执行相加运算
Out[47]: 
0  30.0
1  32.0
2  34.0
3   NaN
4   NaN
dtype: float64

如果希望不使用NAN填充缺失数据,则可以在调用add方法时提供fill_value参数的值,fill_value将会使用对象中存在的数据进行补充,具体示例代码如下。

In [48]: obj_one.add(obj_two, fill_value = 0)  # 执行加法运算,补充缺失值
Out[48]: 
0  30.0
1  32.0
2  34.0
3  23.0
4  24.0
dtype: float64

当然其他的算术运算也是类似的,这里就不再过多赘述了。

点击此处
隐藏目录