2019年华中杯数学建模B题数据处理代码( 三 )

< 0.6:# a6.append(x['延期比'][i])a6.append(6)elif x['延期比'][i] >= 0.6 and x['延期比'][i] < 0.7:# a7.append(x['延期比'][i])elif x['延期比'][i] >= 0.7 and x['延期比'][i] < 0.8:a8.append(x['延期比'][i])elif x['延期比'][i] >= 0.8 and x['延期比'][i] < 0.9:a9.append(x['延期比'][i])elif x['延期比'][i] >= 0.9 and x['延期比'][i] <= 1:a10.append(x['延期比'][i])yy.append(len(a1))yy.append(len(a2))yy.append(len(a3))yy.append(len(a4))yy.append(len(a5))yy.append(len(a6))yy.append(len(a7))yy.append(len(a8))yy.append(len(a9))yy.append(len(a10))print(yy)return yydef createChart(my_list):xx = ['0-0.01','0.1-0.2','0.2-0.3','0.3-0.4','0.4-0.5','0.5-0.6','0.6-0.7','0.7-0.8','0.8-0.9','0.9-1']bar = Bar("柱形图-折线图")bar.add('bar', xx, my_list)line = Line()line.add('line', xx, my_list)overlap = Overlap()overlap.add(bar)overlap.add(line)overlap.show_config()overlap.render(path='第三季度.html')def main():df = pd.read_excel('按季度分.xlsx',sheet_name='第三季度')list = readExcel(df)createChart(list)if __name__ == '__main__':main()
还有上新量的值类似:
import pandas as pd# 柱形图-折线图from pyecharts import Bar, Line, Overlapimport numpy as npimport matplotlib.pyplot as plt#统计每个区间的个数def readExcel(x):shang_xin = []for i in range(len(x['上新日销量'])):shang_xin.append(x['上新日销量'][i])shang_xin.sort()jian_ge = (max(shang_xin) - min(shang_xin))/10yy = []a1 = [];a2 = [];a3 = [];a4 = []a5 = [];a6 = [];a7 = [];a8 = []for i in range(len(x['上新日销量'])):if x['上新日销量'][i] >= shang_xin[0] and x['上新日销量'][i] < shang_xin[0] + jian_ge/5:a1.append(x['上新日销量'][i])elif x['上新日销量'][i] >= shang_xin[0] + jian_ge/5 and x['上新日销量'][i] < shang_xin[0] + jian_ge/5*2:a2.append(x['上新日销量'][i])elif x['上新日销量'][i] >= shang_xin[0] + jian_ge/5*2 and x['上新日销量'][i] < shang_xin[0] + jian_ge/5*3:a3.append(x['上新日销量'][i])elif x['上新日销量'][i] >= shang_xin[0] + jian_ge/5*3 and x['上新日销量'][i] < shang_xin[0] + jian_ge:a4.append(x['上新日销量'][i])elif x['上新日销量'][i] >= shang_xin[0] + jian_ge and x['上新日销量'][i] < shang_xin[0] + jian_ge*2/3*2:a5.append(x['上新日销量'][i])elif x['上新日销量'][i] >= shang_xin[0] + jian_ge*2/3*2 and x['上新日销量'][i] < shang_xin[0] + jian_ge*2:a6.append(x['上新日销量'][i])elif x['上新日销量'][i] >= shang_xin[0] + jian_ge*2 and x['上新日销量'][i] < shang_xin[0] + jian_ge*3:a7.append(x['上新日销量'][i])elif x['上新日销量'][i] >= shang_xin[0] + jian_ge*3 and x['上新日销量'][i] <= shang_xin[0] + jian_ge*10:a8.append(x['上新日销量'][i])yy.append(len(a1))yy.append(len(a2))yy.append(len(a3))yy.append(len(a4))yy.append(len(a5))yy.append(len(a6))yy.append(len(a7))yy.append(len(a8))return yy#生成matlab需要数据def createMatl(myData):print(myData)my_list = []for i in range(myData[0]):my_list.append(1)for i in range(myData[1]):my_list.append(2)for i in range(myData[2]):my_list.append(3)for i in range(myData[3]):my_list.append(4)for i in range(myData[4]):my_list.append(5)for i in range(myData[5]):my_list.append(6)for i in range(myData[6]):my_list.append(7)for i in range(myData[7]):my_list.append(8)#print(my_list)with open('第二题上新量.txt','w') as f:f.write(str(my_list))return my_list#生成图表def createChart(my_list):xx = ['294-806','806-1319','1319-1832','1832-2857','2857-3712','3712-5421','5421-7984','7984-25930']bar = Bar("柱形图-折线图")bar.add('bar', xx, my_list)line = Line()line.add('line', xx, my_list)overlap = Overlap()overlap.add(bar)overlap.add(line)overlap.show_config()overlap.render(path='第二题上新量未赋值区间.html')def main():df = pd.read_excel('附件二.xlsx',sheet_name='汇总')list = readExcel(df)#统计每个区间的个数#createChart(list)#生成图表#createMatl(list)list = createMatl(list)# 求均值arr_mean = np.mean(list)# 求方差arr_var = np.var(list)# 求标准差arr_std = np.std(list)print(arr_mean)print(arr_var)print(arr_std)# plt.style.use('seaborn-white')# # 最基本的频次直方图命令# plt.hist(list)# plt.show()if __name__ == '__main__':main()