数据分析打卡03

数据重构

1、数据的合并
(1)concat方法:将数据横向合并在一起

text_left_up = pd.read_csv("data/train-left-up.csv")
text_right_up = pd.read_csv("data/train-right-up.csv")
text_left_up.head()
text_right_up.head()

在这里插入图片描述
在这里插入图片描述

list_up = [text_left_up,text_right_up]
result_up = pd.concat(list_up,axis=1)
result_up.head()

在这里插入图片描述
注:横向合并和纵向合并均可以使用concat(),axis=1,横向合并,axis=0(默认)纵向合并
(2)join方法和append方法
join()将dataframe进行列拼接,默认左拼接
append()将dataframe进行行拼接,默认

resul_up = text_left_up.join(text_right_up)  #将left和right拼接在一起,列拼接
result_down = text_left_down.join(text_right_down)
result = result_up.append(result_down) 
result.head()

在这里插入图片描述
(3)merge方法

DF.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)

left/right:要拼接在一起的dataframe
how:以怎样的方式进行拼接在一起,有inner、left、right、outer,默认为inner
right_on/left_on:用于左侧或右侧拼接的列名
left_index/right_index:用于左侧或右侧拼接的行的索引号
sort:是否进行排序
merge只能用于两张表的拼接

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)
result.head()

在这里插入图片描述
2、数据聚合与运算
(1)GroupBy()
可以进行数据分组以及分组后的数据运算
df[结果属性].groupby([df[分类属性1],df[属性2]…).mean()(函数名称)

#计算泰坦尼克号男性与女性的平均票价
df = text['Fare'].groupby(text['Sex'])
means = df.mean()
means

在这里插入图片描述

#计算男女的存活人数
survived_sex = text['Survived'].groupby(text['Sex']).sum()
survived_sex.head()

在这里插入图片描述

#统计在不同等级的票中的不同年龄的船票花费的平均 值
text.groupby(['Pclass','Age'])['Fare'].mean().head()

在这里插入图片描述

#得出不同年龄的总的存活人数,然后找出存活人数的 最高的年龄,最后计算存活人数最高的存活率(存活人数/总人数)
#不同年龄的存活人数
survived_age = text['Survived'].groupby(text['Age']).sum()
survived_age.head()

#找出最大值的年龄段
survived_age[survived_age.values==survived_age.max()]

_sum = text['Survived'].sum()
print("sum of person:"+str(_sum))
precetn =survived_age.max()/_sum
print("最大存活率:"+str(precetn))

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值