Python Pandas dataframe.interpolate()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas dataframe.interpolate()函数基本上用于填补数据框架或系列中的缺失值。但是,这是一个非常强大的填充缺失值的函数。它使用各种插值技术来填补缺失的值,而不是硬编码的值。
语法: DataFrame.interpolate(method=’linear’, axis=0, limit=None, inplace=False, limit_direction=’forward’, limit_area=None, downcast=None, **kwargs)
参数 :
method : {‘linear’, ‘time’, ‘index’, ‘values’, ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘barycentric’, ‘krogh’, ‘polynomial’, ‘spline’, ‘piecewise_polynomial’, ‘from_derivatives’, ‘pchip’, ‘akima’}。
axis : 0逐列填充,1逐行填充。
limit : 填充连续NaN的最大数量。必须大于0。
limit_direction : {‘forward’, ‘backward’, ‘both’}, default ‘forward’ 。
limit_area : 无(默认)没有填充限制。 inside 只填充被有效值包围的NaN(插值)。 outside 只填充有效值以外的NaN(外推)。如果指定了限制,连续的NaN将在这个方向上被填充。
inplace :如果可能的话,就地更新NDFrame。
downcast :如果可能的话,将dtypes降级。
kwargs :关键字参数,传递给插值函数。
返回:系列或相同形状的数据帧,在NaN处插值。
例子#1:使用interpolate()函数,用线性方法填补缺失值。
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":[12, 4, 5, None, 1],
"B":[None, 2, 54, 3, None],
"C":[20, 16, None, 3, 8],
"D":[14, 3, None, None, 6]})
# Print the dataframe
df

让我们用线性方法对缺失的数值进行插值。请注意,线性方法忽略了索引,并将这些值视为等距的。
# to interpolate the missing values
df.interpolate(method ='linear', limit_direction ='forward')
输出 :

我们可以看到输出结果,第一行的数值不能被填充,因为数值的填充方向是向前的,没有可以用于插值的前一个数值。
例子#2:使用interpolate()函数,使用线性方法在后向插值,并对可填充的最大连续Na值的数量加以限制。
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":[12, 4, 5, None, 1],
"B":[None, 2, 54, 3, None],
"C":[20, 16, None, 3, 8],
"D":[14, 3, None, None, 6]})
# to interpolate the missing values
df.interpolate(method ='linear', limit_direction ='backward', limit = 1)
输出 :

注意第四列,只有一个缺失的值被填补了,因为我们把极限值设为1。最后一行的缺失值无法被填补,因为在这之后不存在可以插值的行。
极客教程