Pandas模块

1、什么是pandas

pandas是基于numpy构建的,用来做数据分析的

2、pandas能干什么

  • 具备对其功能的数据结构DataFrame,Series
  • 集成时间序列功能
  • 提供丰富的数学运算和操作
  • 灵活处理缺失数据

3、怎么用pandas

安装引用

pip install pandas
import pandas as pd

Series

一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成

#创建方法
pd.Series([1,2,3,4,5]) ##将数组索引以及数组的值打印出来,索引在左,值在右 pd.Series([1,2,3,4,5],index=['a','b','c','d','e']) pd.Series({'a':1,'b':2}) pd.Series(0,index=['a','b','c'])

缺失数据

  • dropna() 过滤掉值为Nan的行
  • fill() 填充缺失数据
  • isnull() 返回布尔数组,缺失值对应为True
  • notnull() 返回布尔数组,缺失值对应为False

Series特性

从ndarray创建Series:Series(arr)

arr=np.arange(10)
sr=pd.Series(arr)

与标量(数字)进行运算

srx=sr*2

两个Series运算

sr*srx

布尔值过滤

sr[sr>3]

统计函数:mean(),sum(),cumsum()

支持字典的特性

从字典创建Series:Series(dic)

dic={'a':1,'b':2,'c':3,'d':4,'e':5}
dic_arr=pd.Series(dic)

in运算

for i in dic_arr:
print(i)

键索引

dic_arr=[['a','b']]

键切片

dic_arr['a':'c']

其他函数

dic_arr.get('a',default=0)

整数索引

sr=pd.Series(np.arange(10))
sr1=sr[4:].copy()
  • loc属性 以标签解释

  • iloc属性 以下标解释

sr1.iloc[1]
sr1.loc[3]

Series数据对齐

sr1=pd.Series([10,20,30],index=['a','b','c'])
sr2=pd.Series([30,20,10].index=['c','b','a'])
sr1+sr2 #将两个Series对象相加将缺失值设为0
sr1=pd.Series([10,20,30],index=['a','b','c'])
sr2=pd.Series([30,20,10].index=['c','b','a','d'])
sr1.add(sr2,fill_value=0) #灵活的算术方法:add,sub,div,mul

DataFrame

DataFrame是一个表格型的数据结构,相当于一个二维数组,含有一组有序的列。他可以被看做由Series组成的字典,并且公用一个索引

创建方式

pd.DataFrame({'one':[1,2,3,4],'two':[4,3,2,1]})

data=pd.DataFrame({'one':[1,2,3,4],'two':[4,3,2,1]})
pd.DataFrame(data,columns=['one','two']) pd.DataFrame({'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([1,2,3],index=['b','a','c'])})

查看数据

常用属性和方法

  • index获取行索引

  • columns获取列索引

  • T转置

  • values获取值索引

  • describe获取快速统计

数组名.index          数组名.columns        数组名.T

数组名.values       数组名.describe

索引和切片

  • DataFrame有行索引和列索引
  • DataFrame可以通过标签和位置两张方法进行索引和切片
#两个中括号
import tushare as ts
data =ts.get_k_data('000001')
data['open'][:10] #先取列再去行
data[:10]['open'] #使用loc、iloc属性
data.loc[:10,'open':'low'] #用标签取值
data.iloc[:10,1:5] #用下标取值

时间对象处理

处理时间对象可能是我们在进行数据分析的过程中最常见的,我们会遇到各种格式的时间序列,也需要处理各种格式的时间序列

时间序列类型

  • 时间戳:特定时刻

  • 国定时间:如2017年2月

  • 时间间隔:起始时间-结束时间

pandas模块详解的更多相关文章

  1. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  2. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  3. python之sys模块详解

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  4. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  5. python time 模块详解

    Python中time模块详解 发表于2011年5月5日 12:58 a.m.    位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...

  6. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

  7. 小白的Python之路 day5 time,datatime模块详解

    一.模块的分类 可以分成三大类: 1.标准库 2.开源模块 3.自定义模块 二.标准库模块详解 1.time与datetime 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时 ...

  8. 小白的Python之路 day5 random模块和string模块详解

    random模块详解 一.概述 首先我们看到这个单词是随机的意思,他在python中的主要用于一些随机数,或者需要写一些随机数的代码,下面我们就来整理他的一些用法 二.常用方法 1. random.r ...

  9. Python中time模块详解

    Python中time模块详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. ...

随机推荐

  1. Nginx虚拟主机配置(20200202)

    一台机器上跑多个站点,即多个域名 curl -xIP:port 域名    用来指定访问的域名在哪个IP的哪个端口上 Nginx默认虚拟主机 不管什么域名解析到该服务器,都会访问到默认虚拟主机 ngi ...

  2. 硬件知识整理part3--电阻在单片机系统中的应用

    邦有道,如矢:邦无道,如矢.  --孔子 电阻在电路中主要功能是限流和分压等等.在单片机系统中自然也是. 电阻作为限流应该是最常用的应用之一,对于单片机外围设计来说,电阻的应用非常重要,在很多时候,我 ...

  3. LeetCode 面试题52. 两个链表的第一个公共节点

    题目链接:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/ 输入两个链表 ...

  4. 功能强大的截图工具snipaste

    一直都是用的聊天工具的截图功能,今天突然懒得登录了.想想是否有简单的截图工具 结果一搜索就找到了这个,本来没想有多少功能毕竟只是截截图而已,看到主页介绍眼前一亮.虽然不想复杂化,但是这个功能是真的不错 ...

  5. 浅谈python的第三方库——pandas(一)

    pandas作为python进行数据分析的常用第三方库,它是基于numpy创建的,使得运用numpy的程序也能更好地使用pandas. 1 pandas数据结构 1.1 Series 注:由于pand ...

  6. 简单的leetcode题

    简单的leetcode题 环绕字符串中唯一的子字符串 把字符串 s 看作是\("abcdefghijklmnopqrstuvwxyz"\)的无限环绕字符串,所以 s 看起来是这样的 ...

  7. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  8. 一个margin就可以让块状元素响应居中,很实用

    之前总结过水平居中的很多方法,但今天在<css世界>这本书里看到margin的一个特性,一行代码就搞定很实用,分享一下 margin: auto能在块级元素设定宽高之后自动填充剩余宽高.m ...

  9. PHP0005:PHP基础--函数

  10. 42.通过原生SQL语句进行操纵mysql数据库

    views.py文件中: from django.shortcuts import render # 导入connection模块 from django.db import connection d ...