一、pandas概述

1.pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的。

2.pandas的主要功能

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

3.python中操作方式:

  • 安装方法:pip install pandas
  • 引用方法:import pandas as pd

4.也可以通过安装anaconda软件操作,里面包含(numpy,pandas以及Matplotlib多个库),本片文章是在anaconda3中运行!!!

二、pandas:Series(一维)

1.Series是一种类似于一位数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。

2.创建方式:

3.从上面操作可以知道:

  • 获取值数组和索引数组:values属性和index属性。
  • Series比较像列表(数组)和字典的组合体。

三、pandas:Series特性  

1.Series支持NumPy模块的特性(下标):

  • 从ndarray创建Series:Series(arr)
  • 与标量运算:sr*2
  • 两个Series运算:sr1+sr2
  • 索引:sr[0], sr[[1,2,4]]
  • 切片:sr[0:2]
  • 通用函数:np.abs(sr)
  • 布尔值过滤:sr[sr>0]
  • 统计函数:mean()sum()cumsum()

   Numpy连接:https://www.cnblogs.com/dalyday/p/9295459.html

2.Series支持字典的特性(标签):

  • 从字典创建Series:Series(dic),
  • in运算:’a’ in sr、for i in sr
  • 键索引:sr['a'], sr[['a', 'b', 'd']]
  • 键切片:sr['a':'c']
  • 其他函数:get('a',default = 0)等

标签示例:

四、pandas:整数索引 

1.整数索引存在标签索引与下标索引,新手在这需注意下。

2.输入下面的列子会出什么结果:

  • sr2[3]
  • sr2[-1]

3.从上面可知索引是整数类型,则根据整数进行数据操作时总是面向标签的。

引入:

  • --loc属性 以标签解释
  • --iloc属性 以下标解释

五、pandas:Series数据对齐 

1.pandas在运算时,会按索引进行对齐然后计算。如果存在不同的索引,则结果的索引是两个操作数索引的并集。

例:

sr1 = pd.Series([12,23,34], index=['c','a','d'])

sr2 = pd.Series([11,20,10], index=['d','c','a',])

sr1+sr2

sr3 = pd.Series([11,20,10,14], index=['d','c','a','b'])

sr1+sr3

图例展示:

2.如何在两个Series对象相加时将缺失值设为0?

sr1.add(sr3, fill_value=0)

灵活的算术方法:add, sub, div, mul

六、pandas:Series缺失数据

1.缺失数据:使用NaN(Not a Number)来表示缺失数据。其值等于np.nan。内置的None值也会被当做NaN处理。

2.处理缺失数据的相关方法:

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

3.过滤缺失数据:sr.dropna() 或 sr[data.notnull()]

4.填充缺失数据:fillna(0)

七、pandas:DataFrame

1.概要描述:DataFrame是一个表格型的数据结构,含有一组有序的列;可以被看做是由Series组成的字典,并且共用一个索引。

2.创建方式:

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

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

3.csv文件读取与写入:

  • pd.read_csv('filename.csv')
  • pd.to_csv()

八、pandas:DataFrame查看数据

查看数据常用属性及方法:
index 获取索引
T 转置
columns 获取列索引
values 获取值数组
describe() 获取快速统

九、pandas:DataFrame索引和切片

1、DataFrame有行索引和列索引。
2、DataFrame同样可以通过标签和位置两种方法进行索引和切片。
3、DataFrame使用索引切片:

  • 方法1.两个中括号,先取列再取行。 df['A'][0]
  • 方法2(推荐):使用loc/iloc属性,一个中括号,逗号隔开,先取行再取列。

    loc属性:解释为标签
    iloc属性:解释为下标

  • 向DataFrame对象中写入值时只使用方法2
  • 行/列索引部分可以是常规索引、切片、布尔值索引、花式索引任意搭配。(注意:两部分都是花式索引时结果可能与预料的不同)
通过标签获取:
df['A']
df[['A', 'B']]
df['A'][0]
df.loc[:,['A','B']]
df.loc[:,'A':'C']
df.loc[0,'A']
df.loc[0:10,['A','C']]
通过位置获取:
df.iloc[3]
df.iloc[3,3]
df.iloc[0:3,4:6]
df.iloc[1:5,:]
通过布尔值过滤:
df[df['A']>0]
df[df['A'].isin([1,3,5])]
df[df<0] = 0

十、pandas:DataFrame数据对齐与缺失数据

1.DataFrame对象在运算时,同样会进行数据对其,结果的行索引与列索引分别为两个操作数的行索引与列索引的并集

2.DataFrame处理缺失数据的方法:

  • dropna(axis=0,where='any',…)
  • fillna()
  • isnull()
  • notnull()

 十一、pandas:其他常用方法

pandas常用方法(适用Series和DataFrame):
mean(axis=0,skipna=False) #求平均值
sum(axis=1) #求和
sort_index(axis, …, ascending) #按行或列索引排序
sort_values(by, axis, ascending) #按值排序
NumPy的通用函数同样适用于pandas
apply(func, axis=0) #将自定义函数应用在各行或者各列上 ,func可返回标量或者Series
applymap(func) #将函数应用在DataFrame各个元素上
map(func) #将函数应用在Series各个元素上

 十二、pandas:其他常用方法

时间类型:
时间戳:特定时刻
固定时期:如2017年7月
时间间隔:起始时间-结束时间
Python标准库:datetime
datetime.datetime.timedelta # 表示 时间间隔
dt.strftime() #f:format吧时间对象格式化成字符串
strptime() #把字符串解析成时间对象p:parse
灵活处理时间对象:dateutil包
dateutil.parser.parse('2018/1/29')
成组处理时间对象:pandas
pd.to_datetime(['2001-01-01', '2002-02-02']) 产生时间对象数组:date_range
start 开始时间
end 结束时间
periods 时间长度
freq 时间频率,默认为'D',可选H(our),W(eek),B(usiness),S(emi-)M(onth),(min)T(es), S(econd), A(year),…

十三、pandas:从文件读取

1.读取文件:从文件名、URL、文件对象中加载数据

read_csv 默认分隔符为csv
read_table 默认分隔符为\t
read_excel 读取Excel文件

2.读取文件函数主要参数:

sep 指定分隔符,可用正则表达式如'\s+'
header=None 指定文件无列名
name 指定列名 index_col 指定某列作为索引
skip_row 指定跳过某些行
na_values 指定某些字符串表示缺失值
parse_dates 指定某些列是否被解析为日期,布尔值或列表
nrows 指定读取几行文件 chunksize 分块读取文件,指定块大小

十四、pandas:写入到文件

1.写入到文件:

to_csv

2.写入文件函数的主要参数:

sep
na_rep 指定缺失值转换的字符串,默认为空字符串
header=False 不输出列名一行
index=False 不输出行索引一列
cols 指定输出的列,传入列表

3.其他文件类型:json, XML, HTML, 数据库

4.pandas转换为二进制文件格式(pickle):

save
load

  

数据分析--pandas的基本使用的更多相关文章

  1. 利用Python进行数据分析——pandas入门

    利用Python进行数据分析--pandas入门 基于NumPy建立的 from pandas importSeries,DataFrame,import pandas as pd 一.两种数据结构 ...

  2. Python数据分析--Pandas知识点(三)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...

  3. Python数据分析--Pandas知识点(二)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...

  4. 利用Python进行数据分析-Pandas(第一部分)

    利用Python进行数据分析-Pandas: 在Pandas库中最重要的两个数据类型,分别是Series和DataFrame.如下的内容主要围绕这两个方面展开叙述! 在进行数据分析时,我们知道有两个基 ...

  5. 数据分析——pandas

    简介 import pandas as pd # 在数据挖掘前一个数据分析.筛选.清理的多功能工具 ''' pandas 可以读入excel.csv等文件:可以创建Series序列,DataFrame ...

  6. python 数据分析--pandas

    接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利用pandas的DataFrames进行统计分析 ...

  7. Python数据分析Pandas库方法简介

    Pandas 入门 Pandas简介 背景:pandas是一个Python包,提供快速,灵活和富有表现力的数据结构,旨在使“关系”或“标记”数据的使用既简单又直观.它旨在成为在Python中进行实际, ...

  8. Python数据分析-Pandas(Series与DataFrame)

    Pandas介绍: pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的. Pandas的主要功能: 1)具备对其功能的数据结构DataFrame.Series 2)集成时间序 ...

  9. Python数据分析 Pandas模块 基础数据结构与简介(一)

    pandas 入门 简介 pandas 组成 = 数据面板 + 数据分析工具 poandas 把数组分为3类 一维矩阵:Series 把ndarray强大在可以存储任意数据类型可以专门处理时间数据 二 ...

  10. python之数据分析pandas

    做数据分析的同学大部分入门都是从excel开始的,excel也是微软office系列评价最高的一种工具. 但当数据量超过百万行的时候,excel就无能无力了,python第三方包pandas极大的扩展 ...

随机推荐

  1. 剖析nsq消息队列(一) 简介及去中心化实现原理

    分布式消息队列nsq,简单易用,去中心化的设计使nsq更健壮,nsq充分利用了go语言的goroutine和channel来实现的消息处理,代码量也不大,读不了多久就没了.后期的文章我会把nsq的源码 ...

  2. 初识JAVA语言

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321 前言        很多游戏开发者可能会有疑问,你会C#,JS,TS,为什么还要初识JAVA呢?有人可能会说,多学点对自己有好处 ...

  3. [Python] socket发送UDP广播实现聊天室功能

    一.说明 本文主要使用socket.socket发送UDP广播来实现聊天室功能. 重点难点:理解UDP通讯流程.多线程.UDP广播收发等. 测试环境:Win10\Python3.5. 程序基本流程:创 ...

  4. window下 局域网内使用mysql,mysql 开启远程访问权限

    一.window 10 开启3306端口 1.按win键选择设置 2.搜索防火墙 3.选择高级设置 3.右键入站规则->新建规则 4.按照提示,规则类型选择端口,应用于tcp,特定本地端口输入3 ...

  5. 模板列传值到子窗体中,子窗体中多选gridview中checkbox保存数据多项到数据库中

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...

  6. px和dp(内含大量的像素单位详解)

    1.前言: 读完本文你会学到什么: dp(device pixels) px(css pixels) pt(point) ppi(pixels per inch) dpi(dots per inch) ...

  7. Java内部类使用注意事项

    Java内部类使用注意事项: 1. 非静态内部类成员可以访问外部类实例成员 (如注释1),但外部类访问非静态内部类的成员 必须创建非静态内部类对象来访问其成员,如注释2 public class La ...

  8. ECfinal-D-Ice Cream Tower-二分+贪心

    传送门:https://vjudge.net/problem/Gym-101194D 题意:在一堆数中,找到对多的组合,使得每个组合的个数为K,且满足在排序后,后一个是前一个的两倍: 思路:二分,贪心 ...

  9. Count on a tree 树上区间第K小

    Count on a tree 题意:求路径 u到v上的 第k小的权重. 题解:先DFS建数, 然后对于每个节点往上跑出一颗主席树, 然后每次更新. 查询的时候, u, v, k, 找到  z = l ...

  10. Python——最美丽的编程语言

    之前总听别人说Python有多厉害,有多好,我是不以为然的.但是当我开始接触Python的时候,我就知道它被誉为最美编程语言不是没有道理的.简短的代码,清晰明了的逻辑,方便快捷的编程工具让它注定会大放 ...