hands on data analysis(数据重构)

一、数据合并
1、使用pd.concat(objs, axis=0, join=‘outer’, […])

objs: series,dataframe构成的序列 list
axis: 需要合并链接的轴,0是行,1是列
join:连接的方式 inner,或者outer

#导入基本库
import numpy as np
import pandas as pd
# 载入data文件中的:train-left-up.csv
text = pd.read_csv('/Users/liwanbin/Documents/第二章项目集合/data/train-left-up.csv')
#加载数据
text_left_up = pd.read_csv("data/train-left-up.csv")
text_left_down = pd.read_csv("data/train-left-down.csv")
text_right_up = pd.read_csv("data/train-right-up.csv")
text_right_down = pd.read_csv("data/train-right-down.csv")
list_up = [text_left_up,text_right_up]
result_up = pd.concat(list_up,axis=1)
result_up.head()

2、使用DataFrame自带的方法join方法和append

resul_up = text_left_up.join(text_right_up)
result_down = text_left_down.join(text_right_down)
result = result_up.append(result_down)
result.head()

3、使用Panads的merge方法和DataFrame的append方法

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 = result_up.append(result_down)
result.head()

二、stack函数作用?
常见的数据的层次化结构有两种,一种是表格,一种是“花括号”,即下面这样的l两种形式:

image.png

image.png

表格在行列方向上均有索引(类似于DataFrame),花括号结构只有“列方向”上的索引(类似于层次化的Series),结构更加偏向于堆叠(Series-stack,方便记忆)。stack函数会将数据从”表格结构“变成”花括号结构“,即将其行索引变成列索引。另外,unstack函数将数据从”花括号结构“变成”表格结构“,即要将其中一层的列索引变成行索引。

三、数据聚合与运算
1、group by:一般和sum()、mean()等聚合函数一起,使用默认axis=0按行分组,可指定axis=1对列分组。字段内的数据重构后都会变成索引

df  = text['Fare'].groupby(text['Sex'])
means = df.mean()
survived_sex = text['Survived'].groupby(text['Sex']).sum()
survived_pclass = text['Survived'].groupby(text['Pclass'])
survived_pclass.sum()

2、1中的运算可以通过agg()函数来同时计算,且可以使用rename函数修改列名

df.groupby('Survived').agg({'Sex': 'mean', 'Pclass': 'count'}).rename(columns={'Sex': 'mean_sex', 'Pclass': 'count_pclass'})
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容