Python Pandas dataframe.interpolate()

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

Python Pandas dataframe.interpolate()

让我们用线性方法对缺失的数值进行插值。请注意,线性方法忽略了索引,并将这些值视为等距的。

# to interpolate the missing values
df.interpolate(method ='linear', limit_direction ='forward')

输出 :
Python Pandas dataframe.interpolate()

我们可以看到输出结果,第一行的数值不能被填充,因为数值的填充方向是向前的,没有可以用于插值的前一个数值。

例子#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)

输出 :
Python Pandas dataframe.interpolate()
注意第四列,只有一个缺失的值被填补了,因为我们把极限值设为1。最后一行的缺失值无法被填补,因为在这之后不存在可以插值的行。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程