(1)df.interpolate()
DataFrame.interpolate(method=‘linear’, axis=0, limit=None, inplace=False, limit_direction=‘forward’, limit_area=None, downcast=None, **kwargs)
参考文档
插值方式
nearest:最邻近插值法
zero:阶梯插值
slinear、linear:线性插值
quadratic、cubic:2、3阶B样条曲线插值(详情请参考官方文档)
栗子:
df = pd.DataFrame([(0.0, np.nan, -1.0, 1.0),
(np.nan, 2.0, np.nan, np.nan),
(2.0, 3.0, np.nan, 9.0),
(np.nan, 4.0, -4.0, 16.0)],
columns=list('abcd'))
print(df)
df.interpolate(method='linear', limit_direction='forward', axis=0)
结果:
a b c d
0 0.0 NaN -1.0 1.0
1 NaN 2.0 NaN NaN
2 2.0 3.0 NaN 9.0
3 NaN 4.0 -4.0 16.0
Out[14]:
a b c d
0 0.0 NaN -1.0 1.0
1 1.0 2.0 -2.0 5.0
2 2.0 3.0 -3.0 9.0
3 2.0 4.0 -4.0 16.0
在series中的用法也是一样的,个参数的含义可以参照文档。
(2)df.replace()
DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method=‘pad’)
参考文档
栗子:
df = pd.DataFrame({'A': [0, 1, 2, 3, 4],
'B': [0, 6, 7, 8, 9],
'C': ['a', 'b', 'c', 'd', 'e']})
df.replace(0,5)
#df.replace([1,2,3,5],4)#可以是列表与数的组合
#df.replace({0: 10, 1: 100})#也可以用字典的形式来进行替换
#df.replace({'A': 0, 'B': 9}, 100)#可以是字典和数值等 的组合
结果:
A B C
0 5 5 a
1 1 6 b
2 2 7 c
3 3 8 d
4 4 9 e
series的replace()方法也是雷士的可以参见文档。