不使用pandas
导入数据
import csv
path = "C:\学习资料\大二下\python数据分析\作业\葡萄酒作业.csv"
f = open ( path, 'r' , encoding= "utf-8" )
next ( f)
reader = csv. reader( f)
conTent = [ ]
for con in reader:
conTent. append( list ( map ( eval , con) ) )
f. close( )
统计葡萄酒总共分为几个品质
品质 = set ( )
for con in conTent:
品质. add( con[ 11 ] )
print ( "葡萄酒总共分为%d个品质,分别为:" % ( len ( 品质) ) , end = "" )
for i in 品质:
print ( str ( i) + " " , end = "" )
葡萄酒总共分为7个品质,分别为:3 4 5 6 7 8 9
将数据集按“品质”分成不同子集, 并打印每个子集前10行数据
import pprint
subSets = [ ]
for i in 品质:
data = [ ]
for con in conTent:
if con[ 11 ] == i:
data. append( con)
subSets. append( data)
for i in range ( len ( subSets) ) :
print ( "第%d个子集的前10行数据:" % ( i+ 1 ) )
pprint. pprint( subSets[ i] [ 0 : 10 ] )
print ( '\n' )
第1个子集的前10行数据:
[[5.8, 0.24, 0.44, 3.5, 0.029, 5, 109, 0.9913, 3.53, 0.43, 11.7, 3],
[7.1, 0.32, 0.32, 11, 0.038, 16, 66, 0.9937, 3.24, 0.4, 11.5, 3],
[6.9, 0.39, 0.4, 4.6, 0.022, 5, 19, 0.9915, 3.31, 0.37, 12.6, 3],
[7.9, 0.64, 0.46, 10.6, 0.244, 33, 227, 0.9983, 2.87, 0.74, 9.1, 3],
[8.6, 0.55, 0.35, 15.55, 0.057, 35.5, 366.5, 1.0001, 3.04, 0.63, 11, 3],
[7.5, 0.32, 0.24, 4.6, 0.053, 8, 134, 0.9958, 3.14, 0.5, 9.1, 3],
[6.7, 0.25, 0.26, 1.55, 0.041, 118.5, 216, 0.9949, 3.55, 0.63, 9.4, 3],
[7.1, 0.49, 0.22, 2, 0.047, 146.5, 307.5, 0.9924, 3.24, 0.37, 11, 3],
[11.8, 0.23, 0.38, 11.1, 0.034, 15, 123, 0.9997, 2.93, 0.55, 9.7, 3],
[7.6, 0.48, 0.37, 1.2, 0.034, 5, 57, 0.99256, 3.05, 0.54, 10.4, 3]]
第2个子集的前10行数据:
[[6.2, 0.45, 0.26, 4.4, 0.063, 63, 206, 0.994, 3.27, 0.52, 9.8, 4],
[9.8, 0.36, 0.46, 10.5, 0.038, 4, 83, 0.9956, 2.89, 0.3, 10.1, 4],
[5.5, 0.485, 0, 1.5, 0.065, 8, 103, 0.994, 3.63, 0.4, 9.7, 4],
[6.4, 0.595, 0.14, 5.2, 0.058, 15, 97, 0.9951, 3.38, 0.36, 9, 4],
[7.6, 0.48, 0.37, 0.8, 0.037, 4, 100, 0.9902, 3.03, 0.39, 11.4, 4],
[6, 0.67, 0.07, 1.2, 0.06, 9, 108, 0.9931, 3.11, 0.35, 8.7, 4],
[6.5, 0.28, 0.28, 8.5, 0.047, 54, 210, 0.9962, 3.09, 0.54, 8.9, 4],
[5.8, 0.28, 0.35, 2.3, 0.053, 36, 114, 0.9924, 3.28, 0.5, 10.2, 4],
[10.2, 0.44, 0.88, 6.2, 0.049, 20, 124, 0.9968, 2.99, 0.51, 9.9, 4],
[6.8, 0.64, 0.08, 9.7, 0.062, 26, 142, 0.9972, 3.37, 0.46, 8.9, 4]]
第3个子集的前10行数据:
[[8.1, 0.27, 0.41, 1.45, 0.033, 11, 63, 0.9908, 2.99, 0.56, 12, 5],
[8.6, 0.23, 0.4, 4.2, 0.035, 17, 109, 0.9947, 3.14, 0.53, 9.7, 5],
[7.9, 0.18, 0.37, 1.2, 0.04, 16, 75, 0.992, 3.18, 0.63, 10.8, 5],
[8.3, 0.42, 0.62, 19.25, 0.04, 41, 172, 1.0002, 2.98, 0.67, 9.7, 5],
[6.5, 0.31, 0.14, 7.5, 0.044, 34, 133, 0.9955, 3.22, 0.5, 9.5, 5],
[5.8, 0.27, 0.2, 14.95, 0.044, 22, 179, 0.9962, 3.37, 0.37, 10.2, 5],
[7.3, 0.28, 0.43, 1.7, 0.08, 21, 123, 0.9905, 3.19, 0.42, 12.8, 5],
[6.5, 0.39, 0.23, 5.4, 0.051, 25, 149, 0.9934, 3.24, 0.35, 10, 5],
[7.3, 0.24, 0.39, 17.95, 0.057, 45, 149, 0.9999, 3.21, 0.36, 8.6, 5],
[6.2, 0.46, 0.25, 4.4, 0.066, 62, 207, 0.9939, 3.25, 0.52, 9.8, 5]]
第4个子集的前10行数据:
[[7, 0.27, 0.36, 20.7, 0.045, 45, 170, 1.001, 3, 0.45, 8.8, 6],
[8.1, 0.28, 0.4, 6.9, 0.05, 30, 97, 0.9951, 3.26, 0.44, 10.1, 6],
[7.2, 0.23, 0.32, 8.5, 0.058, 47, 186, 0.9956, 3.19, 0.4, 9.9, 6],
[7.2, 0.23, 0.32, 8.5, 0.058, 47, 186, 0.9956, 3.19, 0.4, 9.9, 6],
[8.1, 0.28, 0.4, 6.9, 0.05, 30, 97, 0.9951, 3.26, 0.44, 10.1, 6],
[6.2, 0.32, 0.16, 7, 0.045, 30, 136, 0.9949, 3.18, 0.47, 9.6, 6],
[7, 0.27, 0.36, 20.7, 0.045, 45, 170, 1.001, 3, 0.45, 8.8, 6],
[6.3, 0.3, 0.34, 1.6, 0.049, 14, 132, 0.994, 3.3, 0.49, 9.5, 6],
[6.6, 0.27, 0.41, 1.3, 0.052, 16, 142, 0.9951, 3.42, 0.47, 10, 6],
[6.9, 0.24, 0.35, 1, 0.052, 35, 146, 0.993, 3.45, 0.44, 10, 6]]
第5个子集的前10行数据:
[[6.6, 0.16, 0.4, 1.5, 0.044, 48, 143, 0.9912, 3.54, 0.52, 12.4, 7],
[7.2, 0.32, 0.36, 2, 0.033, 37, 114, 0.9906, 3.1, 0.71, 12.3, 7],
[7.4, 0.18, 0.31, 1.4, 0.058, 38, 167, 0.9931, 3.16, 0.53, 10, 7],
[6.4, 0.26, 0.24, 6.4, 0.04, 27, 124, 0.9903, 3.22, 0.49, 12.6, 7],
[7, 0.32, 0.34, 1.3, 0.042, 20, 69, 0.9912, 3.31, 0.65, 12, 7],
[6.9, 0.24, 0.33, 1.7, 0.035, 47, 136, 0.99, 3.26, 0.4, 12.6, 7],
[6.9, 0.21, 0.33, 1.8, 0.034, 48, 136, 0.9899, 3.25, 0.41, 12.6, 7],
[8.6, 0.265, 0.36, 1.2, 0.034, 15, 80, 0.9913, 2.95, 0.36, 11.4, 7],
[6.5, 0.24, 0.32, 7.6, 0.038, 48, 203, 0.9958, 3.45, 0.54, 9.7, 7],
[6.1, 0.3, 0.56, 2.8, 0.044, 47, 179, 0.9924, 3.3, 0.57, 10.9, 7]]
第6个子集的前10行数据:
[[6.2, 0.66, 0.48, 1.2, 0.029, 29, 75, 0.9892, 3.33, 0.39, 12.8, 8],
[6.8, 0.26, 0.42, 1.7, 0.049, 41, 122, 0.993, 3.47, 0.48, 10.5, 8],
[6.7, 0.23, 0.31, 2.1, 0.046, 30, 96, 0.9926, 3.33, 0.64, 10.7, 8],
[5.2, 0.44, 0.04, 1.4, 0.036, 43, 119, 0.9894, 3.36, 0.33, 12.1, 8],
[5.2, 0.44, 0.04, 1.4, 0.036, 43, 119, 0.9894, 3.36, 0.33, 12.1, 8],
[6.8, 0.53, 0.35, 3.8, 0.034, 26, 109, 0.9906, 3.26, 0.57, 12.7, 8],
[6.1, 0.31, 0.58, 5, 0.039, 36, 114, 0.9909, 3.3, 0.6, 12.3, 8],
[6.4, 0.32, 0.35, 4.8, 0.03, 34, 101, 0.9912, 3.36, 0.6, 12.5, 8],
[6, 0.25, 0.28, 2.2, 0.026, 54, 126, 0.9898, 3.43, 0.65, 12.9, 8],
[5.9, 0.27, 0.29, 11.4, 0.036, 31, 115, 0.9949, 3.35, 0.48, 10.5, 8]]
第7个子集的前10行数据:
[[9.1, 0.27, 0.45, 10.6, 0.035, 28, 124, 0.997, 3.2, 0.46, 10.4, 9],
[6.6, 0.36, 0.29, 1.6, 0.021, 24, 85, 0.98965, 3.41, 0.61, 12.4, 9],
[7.4, 0.24, 0.36, 2, 0.031, 27, 139, 0.99055, 3.28, 0.48, 12.5, 9],
[6.9, 0.36, 0.34, 4.2, 0.018, 57, 119, 0.9898, 3.28, 0.36, 12.7, 9]]
统计每个子集样本量
for i in range ( len ( subSets) ) :
print ( "第%d个子集的样本量为:%d" % ( i+ 1 , len ( subSets[ i] ) ) )
第1个子集的样本量为:14
第2个子集的样本量为:115
第3个子集的样本量为:1020
第4个子集的样本量为:1539
第5个子集的样本量为:616
第6个子集的样本量为:123
第7个子集的样本量为:4
将每个子集中“固定酸度”与“剩余糖量”的数值单独提取出来,用数组存放
scidity = [ ]
sugar = [ ]
for subset in subSets:
scidity. append( [ i[ 0 ] for i in subset] )
sugar. append( [ i[ 3 ] for i in subset] )
利用numpy库中现有函数计算均值与中位数
import numpy as np
for i in range ( len ( sugar) ) :
print ( "第%d个子集的“固定酸度”均值为:%.2f,中位数值为:%s" % ( i+ 1 , np. mean( scidity[ i] ) , np. median( scidity[ i] ) ) )
print ( " “剩余糖量”均值为:%.2f,中位数值为:%s" % ( np. mean( sugar[ i] ) , np. median( sugar[ i] ) ) )
第1个子集的“固定酸度”均值为:7.54,中位数值为:7.1
“剩余糖量”均值为:6.64,中位数值为:4.6
第2个子集的“固定酸度”均值为:7.05,中位数值为:6.9
“剩余糖量”均值为:4.61,中位数值为:2.5
第3个子集的“固定酸度”均值为:6.91,中位数值为:6.8
“剩余糖量”均值为:7.11,中位数值为:6.8
第4个子集的“固定酸度”均值为:6.81,中位数值为:6.7
“剩余糖量”均值为:6.44,中位数值为:5.3
第5个子集的“固定酸度”均值为:6.76,中位数值为:6.7
“剩余糖量”均值为:5.28,中位数值为:3.8
第6个子集的“固定酸度”均值为:6.71,中位数值为:6.8
“剩余糖量”均值为:5.72,中位数值为:4.6
第7个子集的“固定酸度”均值为:7.50,中位数值为:7.15
“剩余糖量”均值为:4.60,中位数值为:3.1
使用pandas
导入数据
import pandas as pd
path = r"C:\学习资料\大二下\python数据分析\作业\葡萄酒作业.csv"
content = pd. read_csv( path)
统计葡萄酒总共分为几个品质
品质 = content[ '品质' ] . unique( )
print ( "葡萄酒总共分为%d个品质,分别为:" % len ( 品质) , end = "" )
for i in 品质:
print ( str ( i) + " " , end = "" )
葡萄酒总共分为7个品质,分别为:6 5 7 8 4 3 9
将数据集按“品质”分成不同子集, 并打印每个子集前10行数据,统计样本量,计算均值和中位数
content_group = content. groupby( '品质' )
for key, value in content_group:
display( value. head( 10 ) )
print ( "品质为%d的子集样本量:%d" % ( key, len ( value) ) )
print ( "固定酸度平均值:%.2f,中位数:%s" % ( value[ '固定酸度' ] . mean( ) , value[ '固定酸度' ] . median( ) ) )
print ( "剩余糖量平均值:%.2f,中位数:%s" % ( value[ '剩余糖' ] . mean( ) , value[ '剩余糖' ] . median( ) ) )
固定酸度 挥发性酸度 柠檬酸 剩余糖 氯化物 游离二氧化碳 总二氧化硫 密度 PH值 酸碱盐 酒精 品质 173 5.8 0.24 0.44 3.50 0.029 5.0 109.0 0.99130 3.53 0.43 11.7 3 305 7.1 0.32 0.32 11.00 0.038 16.0 66.0 0.99370 3.24 0.40 11.5 3 524 6.9 0.39 0.40 4.60 0.022 5.0 19.0 0.99150 3.31 0.37 12.6 3 741 7.9 0.64 0.46 10.60 0.244 33.0 227.0 0.99830 2.87 0.74 9.1 3 1001 8.6 0.55 0.35 15.55 0.057 35.5 366.5 1.00010 3.04 0.63 11.0 3 1046 7.5 0.32 0.24 4.60 0.053 8.0 134.0 0.99580 3.14 0.50 9.1 3 1190 6.7 0.25 0.26 1.55 0.041 118.5 216.0 0.99490 3.55 0.63 9.4 3 1368 7.1 0.49 0.22 2.00 0.047 146.5 307.5 0.99240 3.24 0.37 11.0 3 1442 11.8 0.23 0.38 11.10 0.034 15.0 123.0 0.99970 2.93 0.55 9.7 3 1657 7.6 0.48 0.37 1.20 0.034 5.0 57.0 0.99256 3.05 0.54 10.4 3
品质为3的子集样本量:14
固定酸度平均值:7.54,中位数:7.1
剩余糖量平均值:6.64,中位数:4.6
固定酸度 挥发性酸度 柠檬酸 剩余糖 氯化物 游离二氧化碳 总二氧化硫 密度 PH值 酸碱盐 酒精 品质 30 6.2 0.450 0.26 4.4 0.063 63.0 206.0 0.9940 3.27 0.52 9.8 4 67 9.8 0.360 0.46 10.5 0.038 4.0 83.0 0.9956 2.89 0.30 10.1 4 79 5.5 0.485 0.00 1.5 0.065 8.0 103.0 0.9940 3.63 0.40 9.7 4 105 6.4 0.595 0.14 5.2 0.058 15.0 97.0 0.9951 3.38 0.36 9.0 4 120 7.6 0.480 0.37 0.8 0.037 4.0 100.0 0.9902 3.03 0.39 11.4 4 124 6.0 0.670 0.07 1.2 0.060 9.0 108.0 0.9931 3.11 0.35 8.7 4 132 6.5 0.280 0.28 8.5 0.047 54.0 210.0 0.9962 3.09 0.54 8.9 4 141 5.8 0.280 0.35 2.3 0.053 36.0 114.0 0.9924 3.28 0.50 10.2 4 143 10.2 0.440 0.88 6.2 0.049 20.0 124.0 0.9968 2.99 0.51 9.9 4 159 6.8 0.640 0.08 9.7 0.062 26.0 142.0 0.9972 3.37 0.46 8.9 4
品质为4的子集样本量:115
固定酸度平均值:7.05,中位数:6.9
剩余糖量平均值:4.61,中位数:2.5
固定酸度 挥发性酸度 柠檬酸 剩余糖 氯化物 游离二氧化碳 总二氧化硫 密度 PH值 酸碱盐 酒精 品质 8 8.1 0.27 0.41 1.45 0.033 11.0 63.0 0.9908 2.99 0.56 12.0 5 9 8.6 0.23 0.40 4.20 0.035 17.0 109.0 0.9947 3.14 0.53 9.7 5 10 7.9 0.18 0.37 1.20 0.040 16.0 75.0 0.9920 3.18 0.63 10.8 5 12 8.3 0.42 0.62 19.25 0.040 41.0 172.0 1.0002 2.98 0.67 9.7 5 14 6.5 0.31 0.14 7.50 0.044 34.0 133.0 0.9955 3.22 0.50 9.5 5 22 5.8 0.27 0.20 14.95 0.044 22.0 179.0 0.9962 3.37 0.37 10.2 5 23 7.3 0.28 0.43 1.70 0.080 21.0 123.0 0.9905 3.19 0.42 12.8 5 24 6.5 0.39 0.23 5.40 0.051 25.0 149.0 0.9934 3.24 0.35 10.0 5 25 7.3 0.24 0.39 17.95 0.057 45.0 149.0 0.9999 3.21 0.36 8.6 5 31 6.2 0.46 0.25 4.40 0.066 62.0 207.0 0.9939 3.25 0.52 9.8 5
品质为5的子集样本量:1020
固定酸度平均值:6.91,中位数:6.8
剩余糖量平均值:7.11,中位数:6.8
固定酸度 挥发性酸度 柠檬酸 剩余糖 氯化物 游离二氧化碳 总二氧化硫 密度 PH值 酸碱盐 酒精 品质 0 7.0 0.27 0.36 20.7 0.045 45.0 170.0 1.0010 3.00 0.45 8.8 6 1 8.1 0.28 0.40 6.9 0.050 30.0 97.0 0.9951 3.26 0.44 10.1 6 2 7.2 0.23 0.32 8.5 0.058 47.0 186.0 0.9956 3.19 0.40 9.9 6 3 7.2 0.23 0.32 8.5 0.058 47.0 186.0 0.9956 3.19 0.40 9.9 6 4 8.1 0.28 0.40 6.9 0.050 30.0 97.0 0.9951 3.26 0.44 10.1 6 5 6.2 0.32 0.16 7.0 0.045 30.0 136.0 0.9949 3.18 0.47 9.6 6 6 7.0 0.27 0.36 20.7 0.045 45.0 170.0 1.0010 3.00 0.45 8.8 6 7 6.3 0.30 0.34 1.6 0.049 14.0 132.0 0.9940 3.30 0.49 9.5 6 16 6.6 0.27 0.41 1.3 0.052 16.0 142.0 0.9951 3.42 0.47 10.0 6 17 6.9 0.24 0.35 1.0 0.052 35.0 146.0 0.9930 3.45 0.44 10.0 6
品质为6的子集样本量:1539
固定酸度平均值:6.81,中位数:6.7
剩余糖量平均值:6.44,中位数:5.3
固定酸度 挥发性酸度 柠檬酸 剩余糖 氯化物 游离二氧化碳 总二氧化硫 密度 PH值 酸碱盐 酒精 品质 11 6.6 0.160 0.40 1.5 0.044 48.0 143.0 0.9912 3.54 0.52 12.4 7 18 7.2 0.320 0.36 2.0 0.033 37.0 114.0 0.9906 3.10 0.71 12.3 7 29 7.4 0.180 0.31 1.4 0.058 38.0 167.0 0.9931 3.16 0.53 10.0 7 41 6.4 0.260 0.24 6.4 0.040 27.0 124.0 0.9903 3.22 0.49 12.6 7 50 7.0 0.320 0.34 1.3 0.042 20.0 69.0 0.9912 3.31 0.65 12.0 7 63 6.9 0.240 0.33 1.7 0.035 47.0 136.0 0.9900 3.26 0.40 12.6 7 64 6.9 0.210 0.33 1.8 0.034 48.0 136.0 0.9899 3.25 0.41 12.6 7 66 8.6 0.265 0.36 1.2 0.034 15.0 80.0 0.9913 2.95 0.36 11.4 7 89 6.5 0.240 0.32 7.6 0.038 48.0 203.0 0.9958 3.45 0.54 9.7 7 90 6.1 0.300 0.56 2.8 0.044 47.0 179.0 0.9924 3.30 0.57 10.9 7
品质为7的子集样本量:616
固定酸度平均值:6.76,中位数:6.7
剩余糖量平均值:5.28,中位数:3.8
固定酸度 挥发性酸度 柠檬酸 剩余糖 氯化物 游离二氧化碳 总二氧化硫 密度 PH值 酸碱盐 酒精 品质 13 6.2 0.66 0.48 1.2 0.029 29.0 75.0 0.9892 3.33 0.39 12.8 8 15 6.8 0.26 0.42 1.7 0.049 41.0 122.0 0.9930 3.47 0.48 10.5 8 43 6.7 0.23 0.31 2.1 0.046 30.0 96.0 0.9926 3.33 0.64 10.7 8 111 5.2 0.44 0.04 1.4 0.036 43.0 119.0 0.9894 3.36 0.33 12.1 8 112 5.2 0.44 0.04 1.4 0.036 43.0 119.0 0.9894 3.36 0.33 12.1 8 131 6.8 0.53 0.35 3.8 0.034 26.0 109.0 0.9906 3.26 0.57 12.7 8 195 6.1 0.31 0.58 5.0 0.039 36.0 114.0 0.9909 3.30 0.60 12.3 8 228 6.4 0.32 0.35 4.8 0.030 34.0 101.0 0.9912 3.36 0.60 12.5 8 303 6.0 0.25 0.28 2.2 0.026 54.0 126.0 0.9898 3.43 0.65 12.9 8 410 5.9 0.27 0.29 11.4 0.036 31.0 115.0 0.9949 3.35 0.48 10.5 8
品质为8的子集样本量:123
固定酸度平均值:6.71,中位数:6.8
剩余糖量平均值:5.72,中位数:4.6
固定酸度 挥发性酸度 柠檬酸 剩余糖 氯化物 游离二氧化碳 总二氧化硫 密度 PH值 酸碱盐 酒精 品质 551 9.1 0.27 0.45 10.6 0.035 28.0 124.0 0.99700 3.20 0.46 10.4 9 588 6.6 0.36 0.29 1.6 0.021 24.0 85.0 0.98965 3.41 0.61 12.4 9 592 7.4 0.24 0.36 2.0 0.031 27.0 139.0 0.99055 3.28 0.48 12.5 9 628 6.9 0.36 0.34 4.2 0.018 57.0 119.0 0.98980 3.28 0.36 12.7 9
品质为9的子集样本量:4
固定酸度平均值:7.50,中位数:7.15
剩余糖量平均值:4.60,中位数:3.1