两个不同大小或者索引值、标签不同的对象进行算术操作而引起数据缺失,这时可以使用特殊值填充,比如将填充值改成0(基于jupyter)
分别创建两个对象df1,df2
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.arange(12.).reshape((3,4)),columns=list('abcd'))
df2 = pd.DataFrame(np.arange(20.).reshape((4,5)),columns=list('abcde'))
df1,df2结果如下图所示:
随机将一个值改成NaN
df2.loc[1,'b']=np.nan
再将df1与df2相加结果为下图所示
df1+df2
为解决这个问题使用 add方法是加入fill_value参数即可
df1.add(df2,fill_value=0)
add相加结果为下图所示
其他的算术方法见下图:
方法 | 描述 |
add, radd | 加法(+) |
sub, rsub | 减法(-) |
div, rdiv | 除法() |
floordiv, rfloordiv | 整除(//) |
mul, xmul | 乘法(*) |
pow, rpow | 幂次方(**) |
加了r的方法会将数据进行翻转,即变成倒数,如3变成1/3,0变成inf