插值填充:
所谓的插值法就是通过两点(x0,y0),(x1,y1)估计中间点的值,假设y=f(x)是一条直线,通过已知的两点来计算函数f(x),然后只要知道x就能求出y,以此方法来估计缺失值。当然我们也可以假设f(x)不是直线,而是其他函数。
import pandas as pd
data = pd.read_csv(r'D:\Users\DUANPT\Desktop\voltage.csv',encoding= 'gb2312') #读取自己的文件,记得更改为自己的文件所在的路径,encoding='gb2312'意思是读取含有中文的数据
for f in data: # 插值法填充
data[f] = data[f].interpolate()
data.dropna(inplace=True)
data.to_excel(r'D:\Users\DUANPT\Desktop\1.xlsx',index=None) #保存excel文件到指定文件夹,复制代码时记得更改为自己的文件夹路径
interpolate()函数默认的是采用线性插值,即假设函数是直线形式,缺失值用前一个值和后一个值的平均数填充。
还可以根据数字来进行插值,用到参数method=‘values’,此时索引的数值实际上就是用于估计y的x值。
如果index是时间,我们还可以用method=time来插值。不过当dataframe是多重索引(multiIndex)时,只能用线性插值。
其余填补数据方法待更新。。。