Chp5-4
2019 年 12 月 20 日
In [2]: # 看数据在不同组的分布 import pandas as pd import numpy as np from matplotlib import pyplot as plt my_data = pd.read_csv("C:\Python\Scripts\my_data\Titanic.csv") my_plot_data=my_data[['Pclass']].groupby(['Pclass']).size() print(my_plot_data) my_plot_data.plot(kind='bar') Pclass 1 216 2 184 3 491 dtype: int64 Out[2]: <matplotlib.axes._subplots.AxesSubplot at 0x194437b8>
In [3]: # 分组统计 print('表 1. 按仓位等级分组求船费、年龄、同行平辈人数、同行父母和子女人数的均值') print(my_data[['Fare','Age','SibSp','Parch','Pclass']].groupby(['Pclass']).mean()) print('\n\n表 2. 按仓位等级分组求船费、年龄、同行平辈人数、同行父母和子女人数的标准差') print(my_data[['Fare','Age','SibSp','Parch','Pclass']].groupby(['Pclass']).std()) 表 1. 按仓位等级分组求船费、年龄、同行平辈人数、同行父母和子女人数的均值 Fare Age SibSp Parch Pclass 1 84.154687 38.233441 0.416667 0.356481 2 20.662183 29.877630 0.402174 0.380435 3 13.675550 25.140620 0.615071 0.393075 表 2. 按仓位等级分组求船费、年龄、同行平辈人数、同行父母和子女人数的标准差 Fare Age SibSp Parch Pclass 1 78.380373 14.802856 0.611898 0.693997 2 13.417399 14.001077 0.601633 0.690963 3 11.778142 12.495398 1.374883 0.888861 In [4]: # 借助分组、筛选的图形化描述 gender_dst_org=my_data[['Sex']].groupby(['Sex']).size() print('数据文件中全部非空数据的性别情况') print(gender_dst_org,'\n') my_filter=my_data[my_data.Survived==1] #dataframe 的数据筛选 gender_dst_srv=my_filter[['Sex']].groupby(['Sex']).size() print('数据文件中幸存者的性别情况') print(gender_dst_srv,'\n') my_tmp=pd.concat([gender_dst_org,gender_dst_srv],axis=1) # 数据连接, axis=1 表示增加列 my_plot_data=my_tmp.rename(columns={0:'Total',1:'Survived'}) # 列重命名 print(my_plot_data) my_plot_data.plot(kind='bar') 数据文件中全部非空数据的性别情况 Sex female 314 male 577 dtype: int64 数据文件中幸存者的性别情况 Sex female 233 male 109 dtype: int64 Total Survived Sex female 314 233 male 577 109 Out[4]: <matplotlib.axes._subplots.AxesSubplot at 0x17111ac8>
In [73]: import pandas as pd import numpy as np my_data=dmy_data = pd.read_csv("C:\Python\Scripts\my_data\iris.csv",header=None, names=['sepal_length','sepal_width','petal_length', 'petal_width','target']) #my_data.head(5) my_set=set(my_data['target']) # 创建一个类别名集合 print(my_set) my_set_list=list(my_set) #set 不能直接访问其元素,转换成 list 后可以访问 colors=list() palette={my_set_list[0]:"red",my_set_list[1]:"green",my_set_list[2]:"blue"} # 字典,给三种类别对应散点图中的三种 marker_color #print(my_data['target']) for n,row in enumerate(my_data['target']): # 根据类别为每个样本设置绘图颜色 colors.append(palette[my_data['target'][n]]) #print(colors) # 对 my_data 中的数值型数据,每两个特征绘制散点图 scatterplot=pd.plotting.scatter_matrix(my_data,alpha=0.3, figsize=(10,10), diagonal='hist',color=colors, marker='o',grid=True) {'setosa', 'virginica', 'versicolor'}