(1)通过列表对象[[1,2,3,4],[5,6,7,8]]构建numpy的ndarray对象,并分别进行如下操作:①对数组对象进行水平分割和垂直分割,输出每一步的计算结果;②将数组对象序列化到myArray.npy二进制文件中,读取myArray.npy二进制文件中保存的数组并输出。
(2)通过字典对象{“a”:10, “b”:101, “c”:62, “d”:102}创建Series对象s1,要求元素按照如下索引值顺序存储: “c”, “b”, “a”,“d”,并完成:①输出s1中大于平均值(所有元素)的元素;②接收用户输入的查询index值,并判断s1中有无此索引值的元素,有则输出该索引的value,没有则输出“无此index项!”。
(3)建立DataFrame对象对下列数据进行存储,并完成以下统计功能:①统计出北京市的所有数据;②统计出所有“同比”大于130的城市的所有数据;③统计出所有“同比”大于120且“环比”大于101.3的城市的名字。
(4)读取饭店的消费数据文件“meal_order_info.csv”,完成如下处理:①info_id和emp_id为0是非正常数据,读取数据时自动将这类数据变为NaN;②输出前10个订单中的消费者会员编号和姓名;③统计并输出每列中包含的空值的数量;将订单中的消费额expenditure列数据离散到3个区间(建立新列expenditure_Discrete来存储结果),并统计每个区间的用户数量;④丢弃数据中全部为缺失值的列;⑤使用6填充“number_consumers”列中的NA值;⑥归一化消费额expenditure列(建立新列expenditure_Norm来存储结果)。
实验内容1代码: import numpy as np a=np.array([[0,1,2,3],[5,6,7,8]]) b=np.array([[0,1,2,3,4],[5,6,7,8,9]]) #print(a) print('垂直分割',np.hsplit(a,2)) print('水平分割',np.vsplit(b,2)) np.save('myArray.npy',a) a_load=np.load('myArray.npy') print(a_load) 实验内容2代码: import pandas as pd b=pd.Series([62,101,10,102],index=['c','b','a','d']) print(b) aver=0 for key,value in b.items(): aver+=value aver/=4 print("平均值为:{}".format(aver)) for key,value in b.items(): if value > aver: print(key) #输入用户想要的index print("输入想要的index值") x=input() flag=0 for key,value in b.items(): if key==x: flag=1 print(value) if flag==0: print("无此index项目!") 实验内容3代码: import pandas as pd import numpy as np d = {'城市':['北京','上海','广州','深圳','沈阳'], '环比':[101.5,101.2,101.3,102.0,100.1], '同比':[120.7,127.3,119.4,140.9,101.4], '定基':[121.4,127.8,120.0,145.5,101.6],} df=pd.DataFrame(d,index=['c1','c2','c3','c4','c5']) print(df) print(df[df['城市']=='北京']) print(df[df['同比']>130]) print(df[(df['同比']>120) & (df['环比']>101.3)]['城市']): 实验内容4代码: import numpy as np; import pandas as pd; df = pd.read_csv('meal_order_info.csv',encoding='gbk') df.loc[df['info_id']==0,'info_id'] = None df.loc[df['emp_id']==0,'emp_id'] = None #info_id和emp_id为0是非正常数据,读取数据时自动将这类数据变为NaN print(df[['number_consumers','NaNme']].head(10)) #输出前10个订单中的消费者会员编号和姓名 print(df.isnull().sum()) #统计并输出每列中包含的空值的数量;将订单中的消费额expenditure列数据离散到3个区间(建立新列expenditure_Discrete来存储结果),并统计每个区间的用户数量; df['expenditure_Discrete'] = pd.cut(df['expenditure'],bins=[0,100,200,300],labels={'low','medium','high'}) #丢弃数据中全部为缺失值的列 df.dropna(axis=1,how='all',inplace=True) #使用6填充“number_consumers”列中的NA值; df['number_consumers'].fillna(6,inplace=True) #归一化消费额expenditure列(建立新列expenditure_Norm来存储结果)。 df['expenditure_Norm'] = (df['expenditure']-df['expenditure'].min())/(df['expenditure'].max()-df['expenditure'].min()) 代码运行截图:
Python(实验3 数据科学计算)
于 2023-05-18 17:55:55 首次发布