我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python怎么去除异常值和缺失值的插值

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python怎么去除异常值和缺失值的插值

python怎么去除异常值和缺失值的插值,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

使用箱型法去除异常值:

import numpy as npimport pandas as pdimport matplotlib as pltimport osdata = pd.read_excel('try.xls', header=0)# print(data.shape)# print(data.head(10))# print(data.describe())neg_list = ['位移']print("(1)数据的行数为:")R = data.shape[0]print(R)print("(2)小于或大于阈值的数据提取:")for item in neg_list:    neg_item = data[item]<2000    print(item + '小于2000的有' + str(neg_item.sum()) + '个')print("(3)异常值的个数:")for item in neg_list:    iqr = data[item].quantile(0.75) - data[item].quantile(0.25)    q_abnormal_L = data[item] < data[item].quantile(0.25) - 1.5 * iqr    q_abnormal_U = data[item] > data[item].quantile(0.75) + 1.5 * iqr    print(item + '中有' + str(q_abnormal_L.sum() + q_abnormal_U.sum()) + '个异常值')print("(4)箱型图确定上下限:")for item in neg_list:    iqr = data[item].quantile(0.75) - data[item].quantile(0.25)    Too_small = data[item].quantile(0.25) - 1.5 * iqr    Too_big = data[item].quantile(0.25) + 1.5 * iqrprint("下限是", Too_small)print("上限是", Too_big )print("(5)所有数据为:")a = []for i in neg_list:    a.append(data[i])print(a)print("(6)所有正常数据:")b = []j = 0while j < R:    if (a[0][j] > Too_small):        if (a[0][j] < Too_big):            b.append(a[0][j])    j += 1print(b)print("(7)所有异常数据:")c = []i = 0while i < R:    if (a[0][i] < Too_small or a[0][i] > Too_big):        c.append(a[0][i])        a[0][i] = None    i +=1print(c)print("(8)把所有异常数据删除后:")print(a)print("(9)所有数据处理后输出:")d = []k = 0while k < R:    d.append(a[0][k])    k +=1print(d)df = pd.DataFrame(d,columns= ['位移'])df.to_excel("try_result.xls")

拉格朗日插值:

import osimport pandas as pdimport numpy as npfrom scipy.interpolate import lagrangeimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号# 数据的读取data = pd.read_excel('try.xls', header=0)neg_list = ['位移']# 数据的行数R = data.shape[0]# 异常数据的个数for item in neg_list:    iqr = data[item].quantile(0.75) - data[item].quantile(0.25)    q_abnormal_L = data[item] < data[item].quantile(0.25) - 1.5 * iqr    q_abnormal_U = data[item] > data[item].quantile(0.75) + 1.5 * iqr    # print(item + '中有' + str(q_abnormal_L.sum() + q_abnormal_U.sum()) + '个异常值')# 确定数据上限和下限for item in neg_list:    iqr = data[item].quantile(0.75) - data[item].quantile(0.25)    Too_small = data[item].quantile(0.25) - 1.5 * iqr    Too_big = data[item].quantile(0.25) + 1.5 * iqrdata[u'位移'][(data[u'位移']<Too_small) | (data[u'位移']>Too_big)] = None #过滤异常值,将其变为空值#s为列向量,n为被插值位置,k为取前后的数据个数def ployinter(s,n,k=5):    y = s[list(range(n-k,n)) + list(range(n+1,n+1+k))]    y = y[y.notnull()] #剔除空值    return lagrange(y.index,list(y))(n)#逐个元素判断是否需要插值for i in data.columns:    for j in range(len(data)):        if(data[i].isnull())[j]:            data[i][j] = ployinter(data[i],j)# print(data[u'位移'])# 输出拉格朗日插值后的数据data.to_excel("try_result.xls")# 把表格列数据调整为arr,arr为修改后的数据print("拉格朗日插值后的数据:")d = []k = 0while k < R:    d.append(data[u'位移'][k])    k +=1# print(d)arr = np.array(d)print(arr)# 输出图像x = np.arange(len(d))plt.plot(x,d,'b-',label="one", marker='*',markersize=4,linewidth=1) # b代表blue颜色  -代表直线plt.title('位移曲线')plt.legend(loc='upper left',bbox_to_anchor=(1.0,1.0))# 直接更改X轴坐标数# plt.xticks((0,1,2,3,4,5,6,7,8),('0', '1', '2', '3', '4', '5', '6', '7', '8'))plt.xlabel('时间/h')plt.ylabel('位移/mm')#plt.grid(x1)plt.show()

数据拟合:

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom scipy.optimize import leastsqdef Fun(p, x):  # 定义拟合函数形式    a1, a2, a3 , a4 = p    return a1 * x ** 3 + a2 * x ** 2 + a3 * x + a4def error(p, x, y):  # 拟合残差    return Fun(p, x) - ydef main():    x = np.linspace(1, 31, 31)  # 创建时间序列    data = pd.read_excel('try.xls', header=0)    y = data[u'位移']    p0 = [0.1, -0.01, 100, 1000]  # 拟合的初始参数设置    para = leastsq(error, p0, args=(x, y))  # 进行拟合    y_fitted = Fun(para[0], x)  # 画出拟合后的曲线    plt.figure    plt.plot(x, y, 'r', label='Original curve')    plt.plot(x, y_fitted, '-b', label='Fitted curve')    plt.legend()    plt.show()    print(para[0])if __name__ == '__main__':    main()

输出图像:

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号jiaodu = ['0', '15', '30', '15', '60', '75', '90', '105', '120']x = range(len(jiaodu))y = [85.6801,   7.64586,    86.0956,    159.229,    179.534,    163.238,    96.4436,    10.1619,    90.9262,]#plt.figure(figsize=(10, 6))plt.plot(x,y,'b-',label="1", marker='*',markersize=7,linewidth=3) # b代表blue颜色  -代表直线plt.title('各个区域亮度变化')plt.legend(loc='upper left',bbox_to_anchor=(1.0,1.0))plt.xticks((0,1,2,3,4,5,6,7,8),('0', '15', '30', '15', '60', '75', '90', '105', '120'))plt.xlabel('角度')plt.ylabel('亮度')#plt.grid(x1)plt.show()

关于python怎么去除异常值和缺失值的插值问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python怎么去除异常值和缺失值的插值

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python怎么去除异常值和缺失值的插值

python怎么去除异常值和缺失值的插值,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.使用箱型法去除异常值:import numpy as npimport panda
2023-06-29

PaddlePaddle框架怎么处理缺失值和异常值

在PaddlePaddle框架中,处理缺失值和异常值的方法通常包括以下几种:缺失值处理:通常可以使用均值、中位数、众数等方式填充缺失值,也可以使用插值方法进行填充。PaddlePaddle提供了一些实用的函数来处理缺失值,如paddle.i
PaddlePaddle框架怎么处理缺失值和异常值
2024-03-07

PyTorch中怎么处理缺失数据和异常值

在PyTorch中处理缺失数据和异常值的方法可以分为以下几种:缺失数据处理:使用torch.isnan()函数判断数据是否缺失,并进行相应的处理,比如用特定的值填充缺失数据或者删除缺失数据所在的行或列。使用torch.nn.utils.c
PyTorch中怎么处理缺失数据和异常值
2024-03-05

python怎么去除列表中的空值

要去除列表中的空值,可以使用列表推导式或者filter()函数。方法一:使用列表推导式可以使用列表推导式来创建一个新的列表,同时过滤掉列表中的空值。original_list = [1, 2, None, 3, ''
python怎么去除列表中的空值
2024-02-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录