数据分析之数据规整化

数据规整化:清理、转换、合并、重塑

1.合并数据集

pandas对象中的数据可以通过一些内置的方式进行合并:

  pandas.merge

  pandas.concat:沿一条轴线将多个对象进行堆叠

  combine_first:重复数据连接,用一个对象中的值填充另一个缺失值

1.1 数据库风格的DataFrame合并

  pd.merge(df1,df2)  合并其中column名字相同的数据。

  pd.merge(df1,df2, left_on = ‘1key‘, right_on = ‘rkey‘) 两个对象的列名不同,可以对其进行分别指定。

  默认情况下,上述merge进行的是‘inner’连接(交集),并集(outer),依据左边键(left),依据右边键(right)

  pd.merge(df1,df2,how=‘inner’) 

  若在键存在一对多是,产生的是行的笛卡尔积,左边2个b行,右边两个b行,最终合并结果中会有6个b行。

  pd.merge(left,right,on=‘key1‘,suffixes=(‘_left‘,‘_right‘)) 为重复的列名添加下标。

  pd.merge(left1,right1,left_on=‘key‘,right_index=True),试图链接的连接键位于索引之中。

  left2.join(right2,how=‘outer’) 直接实现对索引的连接。

  left2.join([right2, another])

1.2 轴向连接

  另一种数据合并的方式叫做连接,绑定,堆叠。concat函数实现将值和索引粘合在一起。

  pd.concat([s1,s2,s3])

  默认情况下,该函数是在axis=0上进行工作,如果传入axis=1,则结果变为一个DataFrame(axis = 1列)

  pd.concat([s1,s4], axis=1, join=‘inner‘) 传入join值可以实现得到他们的交集

  pd.concat([s1,s4], axis = 1, join_axes =[[‘a‘,‘c‘,‘b‘,‘e‘]])在指定的轴上使用索引

  result = pd.concat([s1,s2,s3],keys=[‘one‘,‘two‘,‘three‘])连接轴上创建一个层次化索引

  result = pd.concat([s1,s2,s3],axis=1,keys=[‘one‘,‘two‘,‘three‘])按照axis=1对Series进行合并,则keys可以成为DataFrame的列头。

1.3合并重叠数据

  b[:-2].combine_first(a[2:])

  对缺失数据进行补齐

  

 df1.combine_first(df2) 用括号内的数据为前置数据补充。

重塑和轴向旋转

有许多用于重新排列表格型数据的基础运算。这些函数也称为重塑(reshape)或轴转向(pivot)运算。

层次化索引为DataFrame数据重排列任务提供了良好的一致性。

stack:将数据的列“旋转”为行

unstac:将数据的行“旋转”为列

数据转换

本章到目前为止介绍的都是数据的重排。另一类重要操作则是过滤、清理以及其他的转换工作。

df1.duplicated() 对列进行判断,返回是否重复的布尔值

df2.drop_duplicates()返回一个删除了重复行的DataFrame

df2.drop_duplicates([‘k1‘])  按照k1列删除重复项

上述默认保留第一个出现的值得组合

传入take_last = True 则保留最后一个:

data.drop_duplicates([‘k1‘,‘k2‘],take_last=True)

data[‘animal‘] = data[‘food‘].map(str.lower).map(meat_to_animal) 其中 meat_to_animal 是字典类型,字典的键为DataFrame中已经存在的列,字典的值为想要添加的新列。

替换

data.replace(-999,np.nan) 实现产生一个新的Series  data.replace([-999, -1000], np.nan)

data.replace([-999,-1000],[np.nan, 0])  同时传入的参数也可以是字典 data.replace({-999:np.nan, -1000:0})

data.index.map(str.upper)

离散化和面元划分

为了便于分析,连续的数据通常被离散化或者拆分为“面元”(bin)。

bins = [12, 25, 35, 60, 100]

cats = pd.cut(ages,bins) 对ages 这个列表按bins的分布进行划分。

cats.labels 输出的分类后具体属于哪一类。返回[1,2,3,1..]    cats.levels   pd.value_counts(cats)

时间: 2024-08-11 01:35:27

数据分析之数据规整化的相关文章

利用python进行数据分析之数据规整化

数据分析和建模大部分时间都用在数据准备上,数据的准备过程包括:加载,清理,转换与重塑. 合并数据集 pandas对象中的数据可以通过一些内置方法来进行合并: pandas.merge可根据一个或多个键将不同DataFrame中的行连接起来,实现类似于数据库中的连接操作. pandas.cancat表示沿着一条轴将多个对象堆叠到一起. 实例方法combine_first可以将重复数据编接在一起,用一个对象中的值填充另一个对象的缺失值. 下面将进行分别讲解: 1.数据库风格的DateFrame合并

利用Python进行数据分析——数据规整化:清理、转换、合并、重塑(七)(2)

1.索引上的合并 有时候,DataFrame中的连接键位于其索引中.在这种情况下,你可以传入left_index = True或right_index = True(或两个都传)以说明索引应该被用作连接键: In [8]: left1 = pd.DataFrame({'key': ['a', 'b', 'a', 'a', 'b', 'c'], ...: 'value':range(6)}) In [9]: right1 = pd.DataFrame({'group_val':[3.5, 7]},

pandas小记:pandas数据规整化

http://blog.csdn.net/pipisorry/article/details/39506169 数据分析和建模方面的大量编程工作都是用在数据准备上的:加载.清理.转换以及重 塑.有时候,存放在文件或数据库中的数据并不能满足数据处理应用的要求. pandas和Python标准库提供了一组高级的.灵活的.高效的核心函数和算法,它们能够轻松地将数据规整化为正确的形式. 数据正则化data normalization pandas.dataframe每行都减去行平均值 use DataF

Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 第9节 绘图和可视化 pandas 回顾 一.实验简介 学习数据分析的课程,需要同学们掌握好 Python 的语言基础,和对 Numpy 与 Matplotlib 等基本库有一些了解.同学们可以参考学习实验楼的 Python 语言基础教程与 Python 科学计算的课程. pandas 是后面我们

《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(二)

3.数据转换 介绍完数据的重排之后,下面介绍数据的过滤.清理.以及其他转换工作. 去重 #-*- encoding: utf-8 -*- import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import Series,DataFrame #DataFrame去重 data = DataFrame({'k1':['one']*3 + ['two'] * 4, 'k2':[1,1,2,3

利用Python进行数据分析---数据规整化

1.合并数据集 ①.多对一合并 我们需要用到pandas中的merge函数,merge函数默认情况下合并的是两个数据集的交集(inner连接),当然还有其他的参数: how里面有inner.outer.left.right,四个参数可以选择,分别代表:交集,并集,参与合并的左侧DataFrame,以及右侧 当列名对象相同时: df1=pd.DataFrame({'key':['a','c','a','b','a','c','b','c'],'data1':range(8)}) df2=pd.Da

数据规整化——合并

数据集的合并或连接运算是通过一个或多个键将行链接起来的,而pandas的merge函数是对数据应用这些算法的主要切入点. 一对多:df1的数据有多个被标记为a和b的行,而df2中key列的每个值则仅对应一行. df1 = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'], 'data1': range(7)}) df2 = DataFrame({'key': ['a', 'b', 'd'], 'data2': range(3)}) 注意:

pandas数据大发888平台出租规整化:清理、转换、合并、重塑

数据分析和大发888平台出租haozbbs.comQ1446595067建模方面的大量编程工作都是用在数据准备上的:加载.清理.转换以及重塑.许多人选择使用通用编程语言或unix文本处理工具(如sed或awk)对数据格式进行专门处理. 幸运的是,pandas和python标准库提供了一组高级的.灵活的.高效的核心函数和算法,将数据规整化正确的形式. 合并数据集: pandas对象中的数据可以通过一些内置的方式进行合并:(1)pandas.merge可根据一个名多个键将不同DataFrame中的行

利用excel VBA进行自动化数据分析,数据汇总,网页表单自动提交等功能

在制造业公司的生产管理,经营管理,采购管理,财务管理等工作中,都有大量的数据处理的任务,通过繁复的excel手工运算获取结果.通过员工培训和自我提升,掌握和使用excel数组公式和VBA自动化,能为员工节省巨大的时间和精力,提高工作附加值.同时作为公司效率化和系统化改善的一部分,为公司效益带来显著提升.以下通过一些案例,展示利用excel公式和VBA进行自动化数据分析,数据汇总,网页表单自动提交在实际场景中的典型应用.相关的文件和代码可以在github下载. 自动化数据分析 以下是通过VBA自动