Python--pandas数据结构

  • pandas概述

     基于 numpy 的一种工具,为了解决数据分析任务而创建。
    
     纳入了大量库和一些标准的数据模型,提供了高效的操作大型数据集所需要的模型。
    
     提供能使我们快速便捷地处理数据的函数和方法。
    
     常与numpy 和matplotlib一同使用。
    
     有两大核心数据结构:Series(一维数据,键值对的形式)和DataFrame(多特征数据,既有行索引,又有列索引)
    
  • pandas库介绍

      Series:
      一维数组,与numpy中的一维array类似。
      
      Series可以有更高效的使用内存,提高运算效率。
      
      numpy 和series中只允许存储相同的数据类型。
      
      Time-Series:
      
      以时间为索引的Series。
      
      DataFrame:
      
      带标签且大小可变的二维表格型数据结构,可将DataFrame理解为Series的容器。
      
      Panel:
      
      三维的数组,可以理解为DataFrame的容器。
    
  • Series

      Series是一种类似于一维数组的对象,它由一维数组(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。
      
      创建函数:
      
      pandas.series(data,index,dtype,copy)
      【data:数据采取各种形式,如:ndarray,list,constants(常量)
      	index:索引值必须是唯一和散列的,与数据的长度相同,默认np.arange(n)如果没有索引被传递。
      	dtype:dtype用于数据类型。如果没有,将推断数据类型。
      	copy: 复制数据,默认为false】
      	
      Series的创建:
      
      1.使用Python数组创建
      2.使用numpy数组创建
      3.使用Python字典创建
       【与字典不同,Series允许索引重复。】
    
      Series:
      其字符串表现形式为:索引在左边,值在右边
      如果没有为数据指定索引,则自动创建一个0到N-1(N为数据的长度)的整数索引
      可以通过Series的Values和index属性获取其数组表示形式和索引对象
      与普通numpy数组相比,可以通过索引的方式选取Series中的单一或一组值
    
#1.
import pandas as pd
import numpy as np
pd.Series([11,12],index=["北京","上海"])

北京   11
上海   12
dtype:int64

#2.
pd.Series(np.arrange(3,6))

0  3
1  4
2  5
dtype:int32

#3.
pd.Series({"北京":11,"上海":12,"深圳":14})

北京  11
上海  12
深圳  14
dtype:int64

  • DataFrame

      DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)
      
      既有行索引也有列索引,它可以被看作由Series组成的字典(共用同一个索引)
      
      跟其他类似的数据结构相比,(如R语言的data.frame), DataFrame中面向行和面向列的操作基本上是平衡的
      
      DataFrame 中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)
      
      特点:
      
      潜在的列是不同的类型
      
      大小可变
      
      标记轴(行和列)
      
      可以对行和列执行算术运算
      
      DataFrame构造函数:
      
      pandas.DataFrame(data,index,columns,dtype,copy)
      【data: 数据采取各种形式,如:ndarray,series,map,lists,dict,constant和另一个DataFrame.
      	index:对于行标签,要用于结果帧的索引是可选缺省值np.arrange(n),如果没有传递索引值。
      	columns:对于列标签,可选的默认语法是np.arrange(n),这只有在没有索引传递的情况下才是这样。
      	dtype: 每列的数据类型
      	copy: 如果默认值为False,则此命令用于复制数据】
      	
      创建:
      1. 从单个列表创建:
      	data=[1,2,3,4]
      	df=pd.DataFrame(data)
      	print(df)
      2. 从嵌套列表创建,并 制定数据类型:
      	data=[['Alex',10],['Bob',12],['Clarke',13]]
      	df=pd.DataFrame(data,columns=['Name','Age'],dtype=flaot)
      	print(df)
      3. 由等长列表或numpy数组组成的字典创建DataFrame
      	data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],'year':[2000,2001,2001,2001,2001],'pop',[1.5,1.7,3.6,2.4,2.9]}
      	frame=pd.DataFrame(data)
      	frame
    
      DataFrame结果会自动加上索引,(跟Series一样),且全部会被有序排列。
      	
      如果指定了列顺序,则DataFrame的列就会按照指定顺序进行排列;
      
      跟原Series一样,如果传入的列在数据中找不到,就会产生NAN值。
      
      通过类似四字典标记的方式或属性的方式,可以将DataFrame的列获取一个Series。
      
      返回的Series拥有原DataFrame相同的索引,且其name属性也已经被相应的设置好了。
      
      列可以通过赋值的方式进行修改。
      
      将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度匹配。
      
      如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有空位都会被填上缺失值。
      
      为不存在的列赋值会创建出一个新列。
      
      关键字del 用于删除列。
      
      将嵌套字典传给DataFrame,它就会被解释为:外层字典的键作为列,内层键则作为行索引。
      
      也可以对上述结果进行转置。【.T】
      
      .index.name=
      .columns.name=
      【可为行、列命名】
      
      跟Series一样,values的属性也会以二维ndarray的形式返回DataFrame中的数据。
      
      如果DataFrame各列的数据类型不同,则数组的数据类型就会选用能兼容所有列的数据类型。
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值