IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python学习记录(5)——Pandas数据结构 -> 正文阅读

[Python知识库]python学习记录(5)——Pandas数据结构

Pandas 是python的一个数据分析包。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

数据结构

在Pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame

Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能;

DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵活应用。

例行地导入:

import pandas as pd
from pandas import Series, DataFrame

序列(Series)

series是一个像数组一样的一维序列,并伴有一个数组表示下标,叫做index。
还可以把它看作一个长度固定,有顺序的dict,从index映射到value。在很多场景下,可以当做dict来用。

创建序列

使用pd.Series函数

  1. 用列表
obj = pd.Series([4,7,-5,3])		#不指定下标
obj

0    4
1    7
2   -5
3    3
dtype: int64
  1. 指定下标
obj2 = pd.Series([4, 7, -5, 3], index=['d','b','a','c'])  #指定下标
obj2

d    4
b    7
a   -5
c    3
dtype: int64
  1. 用字典
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon':16000, 'Utah': 5000}
obj3 = pd.Series(sdata)
obj3

Ohio      35000
Texas     71000
Oregon    16000
Utah       5000
dtype: int64

索引

Series的左边为index,右边为对应的value

obj.values
array([ 4,  7, -5,  3], dtype=int64)

obj2.index
Index(['d', 'b', 'a', 'c'], dtype='object')

在序列中,index可以被视作索引;
即可以通过 obj2[‘d’] 的方法调用value,也可以类似numpy中用布尔值作索引,如 obj2[obj2>0]
但是注意index object是不可更改的

缺失数据、数据合并

isnull()和notnull()可以判断数据是否缺失:

obj.isnull()
pd.isnull(obj)
#两种使用方式

将两个序列用+连接可得到其合并的结果:

states = ['California', 'Ohio', 'Oregon', 'Texas']
obj4 = pd.Series(sdata, index=states)
obj3+obj4

California         NaN
Ohio           70000.0
Oregon         32000.0
Texas         142000.0
Utah               NaN
dtype: float64

name属性

serice自身和它的index都有一个叫name的属性,这个能和其他pandas的函数进行整合

obj4.name = 'population'
obj4.index.name = 'state'
obj4

state
California        NaN
Ohio          35000.0
Oregon        16000.0
Texas         71000.0
Name: population, dtype: float64

数据框(DataFrame)

DataFrame表示一个长方形表格,并包含排好序的列,每一列都可以是不同的数值类型(数字,字符串,布尔值)。
DataFrame有行索引和列索引(row index, column index);可以看做是分享所有索引的由series组成的字典。数据是保存在一维以上的区块里的。

创建数据框

创建dataframe以字典为对象,字典内的值需为列表

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'], 
        'year': [2000, 2001, 2002, 2001, 2002, 2003], 
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
frame

   state	year    pop
0	Ohio	2000	1.5
1	Ohio	2001	1.7
2	Ohio	2002	3.6
3	Nevada	2001	2.4
4	Nevada	2002	2.9
5	Nevada	2003	3.2

使用pd.DataFrame函数时可以指定列名和index的顺序,但是如果导入一个不存在的列名,那么会显示为缺失数据:如:

frame2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'], 
                      index=['one', 'two', 'three', 'four', 'five', 'six'])
frame2

        year   state	pop	debt
one	    2000    Ohio    1.5	NaN
two	    2001	Ohio	1.7	NaN
three	2002	Ohio	3.6	NaN
four	2001	Nevada	2.4	NaN
five	2002	Nevada	2.9	NaN
six	    2003	Nevada	3.2	NaN

元素为字典的字典

对于这类字典:pandas会把外层dcit的key当做列,内层key当做行索引

pop = {'Nevada': {2001: 2.4, 2002: 2.9},
       'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}

行列操作

从DataFrame里提取一列的话会返回series格式,如frame[‘state’]。frame[column]能应对任何列名,但frame.column的情况下,列名必须是有效的python变量名才行。
** 从DataFrame里提取一行**要使用 frame2.loc[‘three’]。

对行或列可以赋值,如果赋值为单个数字则是给所有列(行)赋同一个值;如果是list或array,长度必须符合数据框的长度

创建新列

直接添加一个新的列名(‘eastern’):

frame2['eastern'] = frame2.state == 'Ohio'    #动态增加列

删除列

del frame2['eastern']

转置

frame2.T
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:30:44  更:2021-08-24 15:32:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:10:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码