python数据分析小项目练习

python数据分析小项目练习

数据源:https://d17h27t6h515a5.cloudfront.net/topher/2016/December/584bcec3_titanic-data/titanic-data.csv
敲代码中学习
转自:大神原文链接
小练习
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用来正常显示中文标签,否则中文显示方块
plt.rcParams[‘axes.unicode_minus’]=False #用来正常显示负号

data_src = "titanic-data.csv"
df = pd.read_csv(data_src,header=0)
print(df)
# print(df.info())  
# print(df.describe())
# print(df.head())  

#对于少量缺失值的情况,常用的方法是去除和补齐
#对于存在大量缺失值的字段,应衡量此字段的重要程度与修复代价之间的权重
   
#计算存活率
survived_rate = float(df["Survived"].sum()) / df["Survived"].count()
print(survived_rate)

#船舱位和存活率的关系
x = []
y = []
# print(df[(df.Pclass==1)]["Pclass"])#取Pclass=1列人数
   
x1 = df[(df.Pclass==1)]["Pclass"].size
x.append(x1)
x2 = df[(df.Pclass==2)]["Pclass"].size
x.append(x2)
x3 = df[(df.Pclass==3)]["Pclass"].size
x.append(x3)
# print(x)
#计算各船舱存活人数
y1 = df[(df.Pclass ==1)&(df.Survived == 1)]["Pclass"].size
y.append(y1)
y2 = df[(df.Pclass ==2)&(df.Survived == 1)]["Pclass"].size
y.append(y2)
y3 = df[(df.Pclass ==3)&(df.Survived == 1)]["Pclass"].size
y.append(y3)

print("1 pclass" + "  number:" + str(x[0]) + "   survived:" + str(y[0]))
print("2 pclass" + "  number:" + str(x[1]) + "   survived:" + str(y[1]))
print("3 pclass" + "  number:" + str(x[2]) + "   survived:" + str(y[2]))

在这里插入图片描述

#分类计算存活率
Pclass_survived_rate = (df.groupby(["Pclass"]).sum() / df.groupby(["Pclass"]).count()) ["Survived"]

# print(Pclass_survived_rate)
Pclass_survived_rate.plot(kind="bar")
# plt.bar(x=[1,2,3],height=Pclass_survived_rate,color="lightgreen")
# plt.text(x+0.05,y+0.05,ha="center")#加标签---失败
plt.title("各船舱生存率")
plt.show()
print("################################")
#一等舱存活率高

在这里插入图片描述

 #性别的影响
sex_survived_rate = (df.groupby(["Sex"]).sum() / df.groupby(["Sex"]).count()) ["Survived"]
sex_survived_rate.plot(kind="bar")
plt.title("性别影响")
plt.show()

在这里插入图片描述

#哪个年龄段存活率高
age_survived_rate = (df.groupby(["Age"]).sum() / df.groupby(["Age"]).count()) ["Survived"]
age_survived_rate.plot()
plt.title("年龄&存活率关系")
plt.show()
print("#################################")

在这里插入图片描述

#年龄中有未知的,先进行数据清洗
# print((df['Age']).count())
age_clean_date = df[~np.isnan(df["Age"])]#去掉Age为空的行
# print(age_clean_date["Age"])

ages = np.arange(0,81,5)
age_cut = pd.cut(age_clean_date.Age,ages)

age_cut_grouped = age_clean_date.groupby(age_cut)
age_survived_rate = (age_cut_grouped.sum()/age_cut_grouped .count()) ["Survived"]
age_survived_rate.plot(kind="bar")
plt.title("各年龄段存活率")
plt.show()
#结果发现老人和小孩存活率较高,常识!

在这里插入图片描述

#多因素影响
Pclass_Sex_survived_rate=(df.groupby(['Sex','Pclass']).sum()/df.groupby(['Sex','Pclass']).count())['Survived']
Pclass_Sex_survived_rate.plot(kind='bar')
plt.title('性别和船舱位与存活率关系')
plt.show()
#生死关头也要保持绅士风度!!

在这里插入图片描述
本文只是刚学到python对数据处理的几个包,然后找了相关的小项目练习,python对数据的处理和作图真的是方便,最近又了解到个可交互的可视化包plotly_express,可实现tableau中的某些功能,觉得是真的神奇。另附链接:https://mp.weixin.qq.com/s?__biz=MzU5MjI3NzIxMw==&mid=2247485821&idx=1&sn=fdb1cfd2454371d614829c985a38a453&chksm=fe2372cfc954fbd994b44b6a4aaffc63f1b39ec7570ae8b8ad0185a981c66da8907b2c3df4c3&mpshare=1&scene=23&srcid=#rd


20210902更新
千万不要把这个写到简历里啊朋友,这个小练习只是简单的描述性统计。

  • 9
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值