【Python】Pandas基础:结构化数据处理

python:Pandas基础:结构化数据处理

目录:

一 pandas及其重要性

  • pandas是数据分析工作的首选库。它含有使数据分析工作变得更快更简单的高级数据结构和操作工具。
  • pandas是基于Numpy构建的让以Numpy为中心的应用变得更加简单。
  • 它能满足工作中的许多需求:
    ① 具备按轴自动或显式数据对齐功能的数据结构。防止由于数据未对齐导致的常见错误。
    ② 集成时间序列功能。
    ③ 技既能处理时间序列也能处理非时间序列数据的数据结构。
    ④ 数学运算和简约(agg),可以根据不同的元数据(轴编号)处理。
    ⑤ 灵活处理缺失数据。
    ⑥ 合并及其他出现在常见数据库中的关系型运算。
  • pandas可以解决的数据问题随着它的库规模的增大而变得更加强大,成为数据分析一个不可或缺的工具。

二 pandas的数据结构介绍

1 Series
  • Series是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。由一组数据即可产生最简单的Series。
  • Series的字符串表现形式为:索引在左边,值在右边。自动创建一个0~N-1的整数型索引,可以通过values和index属性获取其数组表示形式和索引对象。
obj = Series([4,7,-5,3])
obj.index
obj.values
  • 可以通过索引的方式选取Series的单个或者一组值。
obj['one'] = 1
  • 数组运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)会保留索引与值之间的链接。
obj[obj > 0]
obj * 2
np.exp(obj)
  • 可以将Series看作一个定长的有序字典,索引到值之间是一个映射。
'a' in obj
  • 如果数据被存放在一个python字典中,也可以直接通过这个字典创建Series。
data = {'one':1,'two':2,'three':3}
obj = Series(data) 
  • 如果只传入一个字典,则结果Series的索引就是原字典的键(有序排列)。
  • Series最重要的一个功能是:它在算术运算中会自动对齐不同索引的数据。
  • Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切:
obj.name = ' population'
obj.index.name = 'state'
obj.index = ['one','two','three','four']   #通过赋值的方式修改索引
2 DataFrame
  • DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。
  • DataFrame既有行索引也有列索引,可以被看做是Series组成的字典(共同用一个索引)。DataFrame面向行和列的操作基本上是平衡的。
  • DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。也可以轻松地将其表示为更高维度的数据(层次化索引的表格型结构,高级数据处理功能的关键要素)。
  • 构建DataFrame的方法①:直接传入一个由等长列或Numpy数组组成的字典。
data = ({'':[],
		 '':[]
		 '':[]})	
frame = DataFrame(data)		 		   
  • 结果DataFrame会自动加上索引,且全部列会被有序排列。
  • 如果指定了列序列,则DataFrame的列会按照指定顺序进行排列。
DataFrame(data,columns = ['one','two','three'])
frame = DataFrame(data,columns = [],index = [])
frame.columns
  • 如果传入的数据找不到,就会产生NA值
  • 通过类似字典标记的方式或属性的方式,可以将DataFrame的列获取为一个Series
frame['one']
frame.one
  • 返回的Series拥有原DataFrame相同的索引,且其name属性也已经被相应的设置好。
  • 行也可以通过位置或名称的方式就行获取,比如用索引字段ix。
frame.ix['1']
  • 列可以通过赋值的方式进行修改。
  • 为不存在的列赋值会创建一个新列。
 frame['new'] = 1   #新增一个空列,并赋一个标量值
 frame['new'] = np.arange(5.)   #新增一个空列,并赋一个标量值
  • 将列表或数组赋值给某个列时,其长度必须跟DataFrame 长度相匹配。如果是Series,会精确匹配DataFrame的索引,空位被缺失值填补。
Series = Series([1,2,3],index = ['one','two','three'])
frame['new'] = Series
  • 构建DataFrame的方法②:嵌套字典(字典的字典)
  • 如果将嵌套字典传递给DataFrame,它会被解释为:外层字典的键作为列,内层键则作为行索引。
  • 内层字典的键会被合并、排序以形成最终 的索引。除非显式指定了索引。
  • 可以输入给DataFrame构造函数所能接受的各种数据
    • 二维ndarray #数据矩阵,还可以传入行标和列标。
    • 由数组、列表或元组组成的字典 #每个序列会变成DataFrame的一列,所有序列的长度必须相同。
    • Numpy的结构化/记录数组 #类似于“由数组组成的字典”
    • 由Series组成的字典
    • 由字典组成的字典<
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值