【使用Pandas进行数据重构(合并、聚合与运算)】

1 数据的合并

方式一:使用concat方式

//将数据a.csv和b.csv横向合并为一张表

// 导入基本库
import numpy as np
import pandas as pd


//首先导入a.csv以及b.csv
a= pd.read_csv("a.csv")
b= pd.read_csv("b.csv")

//使用concat横向合并
list_1 = [a,b]
result = pd.concat(list_1,axis=1)

//数据查看
result.head()

//使用concat纵向合并
list_2 = [a,b]
result2 = pd.concat(list_2)

//数据查看
result2.head()

方式二:使用DataFrame自带的join和append方式

//使用join方式横向合并
result1 = a.join(b)
//使用append方式纵向合并
result2 = a.apeend(b)

方式三:使用Panads的merge方法和DataFrame的append方法

//使用merge方式横向合并
//left_index: 如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键。right_index与left_index类似
result1 = pd.merge(a,b,left_index=True,right_index=True)

//使用append方式纵向合并
result2 = a.apeend(b)

补充: 将数据变为Series类型的数据

//这是另一种数据观察方式
//由DataFrame类型数据变为Series类型的数据
result = a.stack()

//查看数据
result.head()

2 数据聚合与运算

2.1 聚合

2.1.1 分组计算平均值

数据集下载 链接: https://www.kaggle.com/c/titanic/overview

# 导入基本库
import numpy as np
import pandas as pd

#载入数据 
text = pd.read_csv('train.csv')
text.head(15)
//计算数据中男性与女性的平均票价

//Fare:票价 Sex:性别
//groupby:以性别作为分组

result  = text['Fare'].groupby(text['Sex']).mean()

//展示结果
result

在这里插入图片描述

2.1.2 分组计算数和

//统计数据中中男女的存活人数
//Survived:存活人数  存活:1 死亡:0  

result = text['Survived'].groupby(text['Sex']).sum()

//查看数据
result

在这里插入图片描述

2.1.3 通过agg()函数实现聚合

//统计数据中中男女的存活人数,并重命名
//Pclass:船舱等级
//Fare:票价



reuslt = text.groupby('Sex').agg({'Fare': 'mean', 'Pclass': 'count'}).rename(columns=
                            {'Fare': 'mean_fare', 'Pclass': 'count_pclass'})

//查看数据
result

在这里插入图片描述

2.2 运算

运算1:在不同等级的票中的不同年龄的船票花费的平均值


result = text.groupby(['Pclass','Age'])['Fare'].mean()

//查看数据
result.head()

在这里插入图片描述

运算2:找出不同年龄的总的存活人数,然后找出存活人数最多的年龄段,最后计算存活人数最高的存活率(存活人数/总人数)

//不同年龄的存活人数
survived_age = text['Survived'].groupby(text['Age']).sum()
survived_age.head(15)

//查看数据
survived_age.values

//查看数据
survived_age.max()

//查看数据
survived_age.values==survived_age.max()

//计算总人数
sum1 = text['Survived'].sum()
//计算平均值
result = survived_age.max()/sum1
//查看数据
result

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值