《Python数据分析与应用》实验三 Pandas进行数据预处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 Pandas进行数据预处理
任务1 插补用户电量数据的缺失值。
(1)读取misssing_data.csv表中的数据。
import pandas as pd
s=pd.read_excel('D:\\桌面\\实验三\\data\\missing_data.xls')
print('数据输出为:\n',s)
(2)查询缺失值所在的位置。
import pandas as pd
s=pd.read_excel('D:\\桌面\\实验三\\data\\missing_data.xls')
print('缺失值的位置为:\n',s.isnull().sum())
import pandas as pd
import numpy as np
arr=np.array([0,1,2])
missing_data=pd.read_excel("D:\\桌面\\实验三\\data\\missing_data.xls",names=arr) print("lagrange插值前(False为缺失值所在位置)",'\n',missing_data.notnull())
(3)使用SciPy库中interpolate模块中的lagrange对数据进行拉格朗日插值。
(4)查看数据中是否存在缺失值,若不存在则说明插值成功。
import pandas as pd
import numpy as np
arr=np.array([0,1,2])
missing_data=pd.read_excel("D:\\桌面\\实验三\\data\\missing_data.xls",names=arr)
print("lagrange插值前(False为缺失值所在位置)",'\n',missing_data.notnull())
from scipy.interpolate import lagrange
for i in range(0,3):
la=lagrange(missing_data.loc[:,i].dropna().index,missing_data.loc[:,i].dropna().values) list_d=list(set(np.arange(0,20)).difference(set(missing_data.loc[:,i].dropna().index))) missing_data.loc[list_d,i]=la(list_d)
print("第%d列缺失值的个数为:%d"%(i,missing_data.loc[:,i].isnull().sum()))
print("lagrange插值后(False为缺失值所在位置)\n",missing_data.notnull())
任务2 合并线损、用电量趋势与路线告警数据
(1)读取ele_loss.csv和alarm.csv表。
(2)查看两表的形状。
import pandas as pd
ele_loss=pd.read_csv("D:\\桌面\\实验三\\data\\ele_loss.csv")
alarm=pd.read_csv("D:\\桌面\\实验三\\data\\alarm.csv", encoding='gbk')
print("ele_loss表的形状为",ele_loss.shape)
print("alarm表的形状为",alarm.shape)
(3)以ID和date两个键值作为主键进行内连接。
(4)查看合并后的数据。
import pandas as pd
ele_loss=pd.read_csv("D:\\桌面\\实验三\\data\\ele_loss.csv")
alarm=pd.read_csv("D:\\桌面\\实验三\\data\\alarm.csv", encoding='gbk')
print("ele_loss表的形状为",ele_loss.shape)
print("alarm表的形状为",alarm.shape)
merge=pd.merge(ele_loss,alarm,left_on=["ID","date"],right_on=["ID","date"],how="inner") print("合并后的表形状为:",merge.shape)
print("合并后的表为:",merge)
任务3标准化建模专家样本数据
(1)读取model.csv数据。
(2)定义标准差标准化函数。
import pandas as pd
model=pd.read_excel("D:\\桌面\\实验三\\data\\model.xls",encoding='gbk') def Standard(data):
data=(data-data.mean())/data.std()
return data
S=Standard(model)
print("标准化后的数据为:",'\n',S.head())
(3)使用函数分别对3列数据进行标准化。
(4)查看标准化后的数据
import pandas as pd
model=pd.read_excel("D:\\桌面\\实验三\\data\\model.xls",encoding='gbk') def Standard(data):
data=(data-data.mean())/data.std()
return data
S=Standard(model)
print("标准化后的数据为:",'\n',S.head())
def MinMaxScale(data):
data=(data-data.min())/(data.max()-data.min())
return data
M=MinMaxScale(model)
print("离差标准化后的数据为:",'\n',S.head())