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

数据重构-使用jupyter

  • 1 数据的合并
    • 方式一:使用concat方式
    • 方式二:使用DataFrame自带的join和append方式
    • 方式三:使用Panads的merge方法和DataFrame的append方法
    • 补充: 将数据变为Series类型的数据
  • 2 数据聚合与运算
    • 2.1 聚合
      • 2.1.1 分组计算平均值
      • 2.1.2 分组计算数和
      • 2.1.3 通过agg()函数实现聚合
    • 2.2 运算
      • 运算1:在不同等级的票中的不同年龄的船票花费的平均值
      • 运算2:找出不同年龄的总的存活人数,然后找出存活人数最多的年龄段,最后计算存活人数最高的存活率(存活人数/总人数)

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

【使用Pandas进行数据重构(合并、聚合与运算)】_第1张图片

2.1.2 分组计算数和

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

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

//查看数据
result

【使用Pandas进行数据重构(合并、聚合与运算)】_第2张图片

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

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



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

//查看数据
result

【使用Pandas进行数据重构(合并、聚合与运算)】_第3张图片

2.2 运算

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


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

//查看数据
result.head()

【使用Pandas进行数据重构(合并、聚合与运算)】_第4张图片

运算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

【使用Pandas进行数据重构(合并、聚合与运算)】_第5张图片
【使用Pandas进行数据重构(合并、聚合与运算)】_第6张图片
【使用Pandas进行数据重构(合并、聚合与运算)】_第7张图片

你可能感兴趣的:(pandas,重构,python)