软件应用丨小白也能上手的python数据分析案例
The following article is from DC黑板报 Author 逗汁儿
python 安装
如果你还没有安装 Python 环境,那么推荐你安装 Anaconda,对于上手 Python 来说更加简单,不容易出差错。
找到对应版本客户端安装即可。安装好后,即可上手。
上手准备
开始python的第一步,一定是导入相关的库:
import pandas as pd
import numpy as np
左右滑动查看更多
file='titanic.csv'
df=pd.DataFrame(pd.read_csv(file))
df.head()
左右滑动查看更多
survival - 是否幸存(0=幸存,1=遇难)
pclass - 船票类型(1=一等票,2=二等票,3=三等票)
sex - 性别
age - 年龄
sibsp - 泰坦尼克号上该人员兄弟姐妹的数量
parch - 泰坦尼克号上该人员父母或者子女的数量
ticket - 船票编号
fare - 乘客票价
cabin - 客舱号码
embarked - 起航运港(C = Cherbourg, Q = Queenstown, S = Southampton)
boat - 救生艇的编号(如果幸存)
body - 人体编号(如果遇难并且尸体被找到)
home.dest - 出发地到目的地
数据处理
数据查看
df.shape
左右滑动查看更多
df.describe()
左右滑动查看更多
03 查看数据集的空值,或者说是缺失值
df.isnull().sum()
左右滑动查看更多
数据处理
df.rename(columns={'survived':'是否获救','sex':'性别','name':'姓名','pclass':'船舱等级','sex':'性别','age':'年龄','sibsp':'兄弟姐妹数','parch':'父母小孩数','ticket':'船票','fare':'船票费','cabin':'客舱号码','embarked':'起航运港','boat':'救生艇编号','body':'人体编号','home.dest':'出发地到目的地'})
左右滑动查看更多
df.loc[666] #提取索引值为666的那一行
左右滑动查看更多
df.iloc[6:9,:3]#取第六,七八行的前3列
左右滑动查看更多
df[(df['age']<=30)&(df['sex']=='female')]#年龄小于30岁以下的女性
左右滑动查看更多
df[(df['survived']==1)&(df['pclass']!=3)].head()#提取非3等仓并且获救乘客的信息
df.query('pclass==[1,2]').head() #船舱等级不等于1和2的
左右滑动查看更多
df.dropna(how='any') #发现Age中的空值会全部删掉
df.fillna(value=0) #用数据0来填充空值
df['age'].fillna(df['age'].mean()) #用数据集里面的年龄均值来填充空值
左右滑动查看更多
df['embarked'].drop_duplicates()#登船类别
左右滑动查看更多
# 将survived列中1全部替换成3
df['survived'].replace(1, 3).head()
左右滑动查看更多
# 默认axis=0,按行索引对行进行排序;ascending=True,升序排序
df.sort_index().head()
左右滑动查看更多
# 按列名对列进行排序,ascending=False 降序
df.sort_index(axis=1, ascending=False).head()
左右滑动查看更多
df.sort_values(by=['age'],ascending=False).head(5)
左右滑动查看更多
df.sort_values(by=['age'],ascending=True).head(5)
左右滑动查看更多
df.groupby('sex')['survived'].count() #性别获救统计
左右滑动查看更多
df.groupby('pclass')['survived'].count() #船舱等级获救统计
左右滑动查看更多
df['是否成年']=np.where(df['age']>=18,'成年','未成年')
df.head(5)
左右滑动查看更多
df.groupby(['survived','pclass'])['age'].agg(['size','max','min','mean'])
左右滑动查看更多
df.pivot_table(columns=['sex'],index=['survived','pclass'],values='age',aggfunc={'age':[np.mean,min,max]})
左右滑动查看更多
数据分析与可视化
df['survived'].mean()
左右滑动查看更多
import matplotlib.pyplot as plt
class_sex_grouping = df.groupby(['pclass','sex']).mean()
class_sex_grouping
class_sex_grouping['survived'].plot.bar(figsize=(12, 7), fontsize=12)
左右滑动查看更多
对年纪进行分析:
group_by_age = pd.cut(df["age"], np.arange(0, 90, 10))
age_grouping = df.groupby(group_by_age).mean()
age_grouping['survived'].plot.bar(figsize=(12, 7), fontsize=12)
左右滑动查看更多
df.groupby('pclass').mean()
左右滑动查看更多
titanic=sns.load_dataset('titanic')
sns.boxplot(x='pclass',y='age',data=titanic)
左右滑动查看更多
sns.violinplot(x='pclass',y='age',hue='survived',data=titanic,split=True)
左右滑动查看更多
►一周热文
软件应用丨Python IDE之 pycharm的十大奇技淫巧
统计计量丨统计学中算变异量为什么要除以n-1?什么是「自由度」?
数据呈现丨比 Excel 更强大,Python 的可视化库 Altair 入门
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
作者:逗汁儿出处:DC黑板报推荐:青酱编辑:青酱
欢迎扫描👇二维码添加关注