更新时间:2022年10月07日14时20分 来源:传智教育 浏览次数:
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
当然其他的算术运算也是类似的,这里就不再过多赘述了。