数据分析学习:泰坦尼克号实战
数据重构
数据的合并
text_left_up = pd.read_csv("data/train-left-up.csv")
text_left_down = pd.read_csv("data/train-left-down.csv")
text_right_up = pd.read_csv("data/train-right-up.csv")
text_right_down = pd.read_csv("data/train-right-down.csv")
用concat函数合并数据
list_up = [text_left_up,text_right_up]
result_up = pd.concat(list_up,axis=1)
list_down=[text_left_down,text_right_down]
result_down = pd.concat(list_down,axis=1)
result = pd.concat([result_up,result_down])
也可以用DataFrame中join和append函数
resul_up = text_left_up.join(text_right_up)
result_down = text_left_down.join(text_right_down)
result = result_up.append(result_down)
或用Panads的merge函数和DataFrame的append函数
result_up = pd.merge(text_left_up,text_right_up,left_index=True,right_index=True)
result_down = pd.merge(text_left_down,text_right_down,left_index=True,right_index=True)
result = resul_up.append(result_down)
数据聚合与运算
GroupBy机制
groupby:分割,应用和组合。groupby经常只需一行代码,就可以计算每组的和,均值,计数,最小值以及其他累计值。
#按Sex分组,访问Fare的平均值
df = data['Fare'].groupby(data['Sex'])
print( df.mean())
survived_sex = data['Survived'].groupby(data['Sex']).sum()
print(survived_sex)
survived_pclass = data['Survived'].groupby(data['Pclass']).sum()
print(survived_pclass)
结果:
观察发现女性比男性的存活人数多,1级舱存活的人较多
统计在不同等级的票中的不同年龄的船票花费的平均值
x=data.groupby(['Pclass','Age'])['Fare'].mean()
存活人数最高的存活率
_sum =data['Survived'].sum()
print("sum of person:"+str(_sum))
precetn =survived_age.max()/_sum
print("最大存活率:"+str(precetn))
结果为: