import numpy as np
import pandas as pd
text_left_up = pd.read_csv("C:/Users/Administrator/LC python/datawhale/data analysis/unit 2/data/train-left-up.csv")
text_left_down = pd.read_csv("C:/Users/Administrator/LC python/datawhale/data analysis/unit 2/data/train-left-down.csv")
text_right_up = pd.read_csv("C:/Users/Administrator/LC python/datawhale/data analysis/unit 2/data/train-right-up.csv")
text_right_down = pd.read_csv("C:/Users/Administrator/LC python/datawhale/data analysis/unit 2/data/train-right-down.csv")
text_left_up.head()
text_left_down.head()
text_right_up.head()
text_right_down.head()
df.head()
使用concat方法:将数据train-left-up.csv和trainright-up.csv横向合并为一张表,并保存这张表为result_up。
#数据的拼接
list_up = [text_left_up,text_right_up]
result_up = pd.concat(list_up,axis=1) #两个up横向连接
result_up.head()
pd.concat(objs, axis=0, join=‘outer’, join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)
objs: 需要连接的对象,eg [df1, df2]
axis: axis = 1, 表示在水平方向(row)进行连接;axis = 0, 表示在垂直方向(column)进行连接
join outer: 表示index全部需要; inner,表示只取index重合的部分
join_axes: 传入需要保留的index
ignore_index: 忽略需要连接的frame本身的index,当原本的index没有特别意义的时候可以使用。
keys: 可以给每个需要连接的df一个label
result_down = pd.concat([text_left_down,text_right_down],axis=1) #两个down横向连接
result_down.head()
result = pd.concat([result_up,result_down],axis=0) #两个result纵向连接
result.head()
#用DataFrame的join方法完成以上任务
resul_up = text_left_up.join(text_right_up)
result_down = text_left_down.join(text_right_down)
result = result_up.append(result_down) #join横连,append竖连
result.head()
#用Pandas的merge方法和DataFrame的append方法完成任务
result_up = pd.merge(text_left_up,text_right_up,left_index=True,right_index=True)
#left_index: 如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键。 对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。
#right_index: 与left_index功能相似。 merge用法:https://blog.csdn.net/brucewong0516/article/details/82707492
result_down = pd.merge(text_left_down,text_right_down,left_index=True,right_index=True)
result = resul_up.append(result_down)
result.head()
result.to_csv('C:/Users/Administrator/LC python/datawhale/data analysis/unit 2/data/result.csv')
#将数据变成Series的数据
# 将完整的数据加载出来
text = pd.read_csv('C:/Users/Administrator/LC python/datawhale/data analysis/unit 2/data/result.csv')
text.head()
# 代码写在这里
unit_result=text.stack().head(20) #stuck()是将列旋转到行,unstack()是将行旋转到列,Series数据只有两列
unit_result.head()
#将代码保存为unit_result,csv
unit_result.to_csv('C:/Users/Administrator/LC python/datawhale/data analysis/unit 2/data/unit_result.csv')
test = pd.read_csv('C:/Users/Administrator/LC python/datawhale/data analysis/unit 2/data/unit_result.csv')
test.head()
男性与女性的平均票价:
df = text['Fare'].groupby(text['Sex']) #用groupby将sex分为两类,把对应的票价值取出
means = df.mean()
means
survived_sex = text['Survived'].groupby(text['Sex']).sum() #格式同上略有变化
survived_sex.head()
男女的存活人数:
survived_sex = text['Survived'].groupby(text['Sex']).sum() #格式同上略有变化
survived_sex.head()
survived_pclass = text['Survived'].groupby(text['Pclass']) #格式同上略有变化
survived_pclass.sum()
text.groupby(['Pclass','Age'])['Fare'].mean()
text.describe()
数据合并,并保存到sex_fare_survived.csv:
result = pd.merge(means,survived_sex,on='Sex') #不同性别票价均值和存活人数构成的表格
result
result.to_csv('sex_fare_survived.csv')
得出不同年龄的总的存活人数,然后找出存活人数的 最高的年龄,最后计算存活人数最高的存活率(存活人数/总人数):
#不同年龄的存活人数
survived_age = text['Survived'].groupby(text['Age']).sum()
survived_age.head()
找出最大值的年龄段
survived_age[survived_age.values==survived_age.max()] #输出的是个Series
_sum = text['Survived'].sum() #计算总存活人数
print(_sum)
342
#首先计算总人数
_sum = text['Survived'].sum()
print("sum of person:"+str(_sum))
precent =survived_age.max()/_sum
print("最大存活率:"+str(precent))#首先计算总人数
_sum = text['Survived'].sum()
print("sum of person:"+str(_sum))
precent =survived_age.max()/_sum
print("最大存活率:"+str(precent))