数据重构-使用jupyter
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