大数据技术(第7节实验课-----pandas之表格补充,标准化,离散化,等分位)

第1题

在ftp://125.220.71.247/%BC%C6%CB%E3%BB%FA%D1%A7%D4%BA/dingsong/bigdata/1122exp/ 目录下
有一个timu1.csv,里面有三个缺失的数据,请你把这三个缺失的数据的index找出来,求和 作为一行提交的数据
利用拉格朗日插值法,求这三个数值(取缺失数据的最接近的前3个数字和后三个数字)
求出的缺失数字之和的整数部分作为提交的第二行数据

import numpy as np
import pandas as pd
from scipy.interpolate import interp1d
from scipy.interpolate import lagrange
 
t1=pd.read_csv(r"G:\大数据实验数据库\3.大数据实验数据\timu1.csv",header=None) 
ser1=t1[t1[1].isnull()]
number=list(ser1.index)
print("三个缺失的数据的index之和为",sum(number))
t2=[]
t3=[]

sum1=0
for i in  number:
    x=(list(t1.loc[i-3:i-1,0])+list(t1.loc[i+1:i+3,0]))
    y=(list(t1.loc[i-3:i-1,1])+list(t1.loc[i+1:i+3,1]))
    lvl=lagrange(x,y)
    sum1+=int(lvl(i))
print("缺失数字之和的整数部分为",sum1)

第2题 P165面 实训3

在ftp://125.220.71.247/%BC%C6%CB%E3%BB%FA%D1%A7%D4%BA/dingsong/bigdata/1122exp/ 目录下
有一个model.xls文件 ,完成实训3布置的任务。将第1列 电量趋势下降指标 列采用标准差标准化法(P155面),对该列将标准化后的数据进行求和,保留2位小数。提交到第3行。

import numpy as np
import pandas as pd
t1=pd.read_excel(r"G:\大数据实验数据库\3.大数据实验数据\model.xls") 

def stdscaler(data):
    data=(data-data.min())/(data.std())
    return data

print(type(t1))
d1=stdscaler(t1.iloc[:,0])
stdscaler_sum=sum(d1)
print("最终结果为%0.2f"%stdscaler_sum)

第3题 P166面 2操作题

(1)第1小题

t=[200,300,400,600,1000]
t=pd.DataFrame(t)


#1.最大最小规范化
def minmaxscale(data):
    data=(data-data.min())/(data.max()-data.min())
    return data

d1=minmaxscale(t)
print("最大最小规范化")
print(d1)


#2.标准差标准化
def stdscaler(data):
    data=(data-data.min())/(data.std())
    return data

d1=stdscaler(t)
print("标准差标准化")
print(d1)

#3.小数定标标准化
def DecimalScaler(data):
    data=data/10**np.ceil(np.log10(data.abs()/data.max()))
    return data

d2=DecimalScaler(t)
print("小数定标标准化")
print(d2)

(2) 第2小题


t=[5,10,11,13,15,35,50,55,72,92,204,215]
t=pd.DataFrame(t)
pd.cut(t[0],3) 

(3)第3小题

t=[5,10,11,13,15,35,50,55,72,92,204,215,np.nan]
t=pd.DataFrame(t)

def fun(t):
    t.drop_duplicates()  #去重
    
    for i in range(t.shape[1]):
        t1=t[t[i].notnull()]  #去空列表
        x=np.median(t1[i])    #求中位数
        t[t.isnull()]=x       #赋值
fun(t)     
print(t)

第4题

第4题 在ftp://125.220.71.247/%BC%C6%CB%E3%BB%FA%D1%A7%D4%BA/dingsong/bigdata/1122exp/ 目录下
有一个timu2.csv,求第1列 中位数为x,1/4位数为y(从小到大),1/10位分位数为z,s为你的学号,已知w=x+y+z,t=w+s提交t到第4行

import numpy as np
import pandas as pd
t1=pd.read_csv(r"G:\大数据实验数据库\3.大数据实验数据\timu2.csv",header=None) 
t1=t1[1]


s=1750300142

x=np.median(t1)          #中位数
y=np.percentile(t1, 25)  #25%分位数
z=np.percentile(t1, 10)  #10%分位数
w=x+y+z
t=w+s

print("最终和为",t)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值