pandas 对于数据分析的人员来说都是必须熟悉的第三方库,pandas 在科学计算上有很大的优势,特别是对于数据分析人员来说,相当的重要。python中有了Numpy ,但是Numpy 还是比较数学化,还需要有一种库能够更加具体的代表数据模型,我们都非常的清楚在数据处理中EXCEL 扮演着非常重要的作用,表格的模式是数据模型最好的一种展现形式。

pandas 是对表格数据模型在python上的模拟,它有简单的像SQL 对数据的处理,能够方便的在python上实现。

pandas 的安装

pandas 在python上的安装同样的使用pip进行:

pip install pandas

pandas 创建对象

pandas 有两种数据结构:SeriesDataFrame

Series

Series 像python中的数据list 一样,每个数据都有自己的索引。从list创建 Series

>>> import pandas as pd
>>> s1 = pd.Series([100,23,'bugingcode'])
>>> s1
0 100
1 23
2 bugingcode
dtype: object
>>>

Series 中添加相应的索引:

>>> import numpy as np
>>> ts = pd.Series(np.random.randn(365), index=np.arange(1,366))
>>> ts

在index中设置索引值是一个从1到366的值。

Series 的数据结构最像的是python中的字典,从字典中创建Series

sd = {'xiaoming':14,'tom':15,'john':13}
s4 = pd.Series(sd)

这时候可以看到Series 已经是自带索引index。

pandas 本身跟 python的另外一个第三方库Matplotlib 有很多的连接,Matplotlib 一个最经常用到的是用来展示数据的,如果还对Matplotlib 不了解的话,后面的章节会进行介绍,现在先拿过来直接用下,如果还没有安装的话,一样的用pip命令安装 pip install Matplotlib , 展示如下数据:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt ts = pd.Series(np.random.randn(365), index=np.arange(1,366))
ts.plot()
plt.show()

一个不规则的图形,在数据分析中,时间是一个重要的特性,因为很多数据都是跟时间是有关系的,销售额跟时间有关系,天气跟时间有关系。。。,在pandas 中也提供了关于时间的一些函数,使用date_range 生成一系列时间。

>>> pd.date_range('01/01/2017',periods=365)
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04',
'2017-01-05', '2017-01-06', '2017-01-07', '2017-01-08',
'2017-01-09', '2017-01-10',
...
'2017-12-22', '2017-12-23', '2017-12-24', '2017-12-25',
'2017-12-26', '2017-12-27', '2017-12-28', '2017-12-29',
'2017-12-30', '2017-12-31'],
dtype='datetime64[ns]', length=365, freq='D')
>>>

之前我们的图形不规则,有一个原因是数据不是连续的,使用cumsum让数据连续:

如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt ts = pd.Series(np.random.randn(365), index=pd.date_range('01/01/2017',periods=365))
ts = ts.cumsum()
ts.plot()
plt.show()

DataFrame

DataFrame 相当于Series 一维的一个扩展,是一种二维的数据模型,相当于EXcel表格中的数据,有横竖两种坐标,横轴很Series 一样使用index,竖轴用columns 来确定,在建立DataFrame 对象的时候,需要确定三个元素:数据,横轴,竖轴。

df = pd.DataFrame(np.random.randn(8,6), index=pd.date_range('01/01/2018',periods=8),columns=list('ABCDEF'))
print df

数据如下:

                   A         B         C         D         E         F
2018-01-01 0.712636 0.546680 -0.847866 -0.629005 2.152686 0.563907
2018-01-02 -1.292799 1.122098 0.743293 0.656412 0.989738 2.468200
2018-01-03 1.762894 0.783614 -0.301468 0.289608 -0.780844 0.873074
2018-01-04 -0.818066 1.629542 -0.595451 0.910141 0.160980 0.306660
2018-01-05 2.008658 0.456592 -0.839597 1.615013 0.718422 -0.564584
2018-01-06 0.480893 0.724015 -1.076434 -0.253731 0.337147 -0.028212
2018-01-07 -0.672501 0.739550 -1.316094 1.118234 -1.456680 -0.601890
2018-01-08 -1.028436 -1.036542 -0.459044 1.321962 -0.198338 -1.034822

在数据分析的过程中,很常见的一种情况是数据直接从excel 或者cvs 过来,可以excel中读取数据到DataFrame ,数据在 DataFrame 中进行处理:

df = pd.read_excel('data.xlsx',sheet_name= 'Sheet1')
print df

同样的有保存数据到excelto_excel

处理cvs数据的函数是:read_cvsto_cvs ,处理HDF5的函数为 read_hdfto_hdf

访问DataFrame 可以跟二位数组一样的访问方式:

print df['A']

带出横轴标签:

2018-01-01    0.712636
2018-01-02 -1.292799
2018-01-03 1.762894
2018-01-04 -0.818066
2018-01-05 2.008658
2018-01-06 0.480893
2018-01-07 -0.672501
2018-01-08 -1.028436

同样的可以指定某一个元素:

print df['A']['2018-01-01']

对数组进行切片出来,认清横轴和纵轴:

>>> import pandas as pd
>>> df = pd.read_excel('data.xlsx',sheet_name= 'Sheet1')
>>> df[:][0:3]
A B C D E F
2018-01-01 0.712636 0.546680 -0.847866 -0.629005 2.152686 0.563907
2018-01-02 -1.292799 1.122098 0.743293 0.656412 0.989738 2.468200
2018-01-03 1.762894 0.783614 -0.301468 0.289608 -0.780844 0.873074
>>>

DataFrame 涉及的较多的函数,接下来会有更多的介绍。

更多教程:大家来编程

pandas入门(一):pandas的安装和创建的更多相关文章

  1. 03慕课网《vue.js2.5入门》——Vue-cli的安装,创建webpack模板项目

    安装Vue-cli 第一种 貌似不可以,然后用了第二种,但是重装系统后,第二种不能用了,用了第一种可以 # 全局安装vue -cli命令npm install --global vue-cli # 创 ...

  2. Python 数据处理库 pandas 入门教程

    Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...

  3. 程序员用于机器学习编程的Python 数据处理库 pandas 入门教程

    入门介绍 pandas适合于许多不同类型的数据,包括: · 具有异构类型列的表格数据,例如SQL表格或Excel数据 · 有序和无序(不一定是固定频率)时间序列数据. · 具有行列标签的任意矩阵数据( ...

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

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

  5. Python数据分析之pandas入门

    一.pandas库简介 pandas是一个专门用于数据分析的开源Python库,目前很多使用Python分析数据的专业人员都将pandas作为基础工具来使用.pandas是以Numpy作为基础来设计开 ...

  6. Python数据分析入门之pandas基础总结

    Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...

  7. 利用python进行数据分析之pandas入门

    转自https://zhuanlan.zhihu.com/p/26100976 目录: 5.1 pandas 的数据结构介绍5.1.1 Series5.1.2 DataFrame5.1.3索引对象5. ...

  8. pandas入门指南

    上一篇讲了numpy,除此之外,还有一个工具我们一定会使用,那就是pandas.如果说numpy中数据存储形式是列表的话,那么pandas中数据的存储形式更像是字典.为什么这么说呢?因为pandas中 ...

  9. 第十章、jupyter入门之pandas

    目录 第十章.jupyter入门之pandas 一.什么是pandas 二.Series 三.基本概念 四.基本运算 五.DataFrame 第十章.jupyter入门之pandas 一.什么是pan ...

随机推荐

  1. 进程同步multiprocess.Lock

    进程同步multiprocess.Lock 我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间的运行没有顺序,一旦开启也不受我们控制.尽管并发编程让我们能更加充分的利用IO ...

  2. 刷题34. Find First and Last Position of Element in Sorted Array

    一.题目说明 题目是34. Find First and Last Position of Element in Sorted Array,查找一个给定值的起止位置,时间复杂度要求是Olog(n).题 ...

  3. uniapp结合小程序第三方插件“WechatSI”实现语音识别功能,进而实现终端控制

    最近在用soket实现终端控制器的功能,然后就想用语音控制,这样显得更AI WechatSI在manifest.json中配置: 在vue中插入如下展示代码: <view class=" ...

  4. windows下使用vs code调试简单的C程序

    常使用visual studio code(vs code)打开.c文件,如果让vs code具备调试技能估计会比较有用 准备工作: 1. vs code安装插件:cpptools 2. window ...

  5. redhat7.0安装postgresql

    安装命令 sudo yum install postgresql-server 查看安装的包 sudo yum list postgres* postgresql.x86_64 postgresql- ...

  6. Java之异常的处理(throws)

    import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java. ...

  7. 共享出行疯狂并购背后,打造全交通链条才能让Uber们更快乐

    一直以来,携程.滴滴.摩拜等与出行相关的企业总是会因各种负面问题而饱受诟病.但不能否认的是它们极大地提升了出行便利性,让人们的出行更有效率,也更加方便.而与此同时,Uber.Lyft.滴滴等共享打车企 ...

  8. A component required a bean named xxx that could not be found. Action: Consider defining

    0 环境 系统:win10 1 正文 https://stackoverflow.com/questions/44474367/field-in-com-xxx-required-a-bean-of- ...

  9. P2448 无尽的生命(树状数组+离散化)

    题目描述 逝者如斯夫,不舍昼夜! 叶良辰认为,他的寿命是无限长的,而且每天都会进步. 叶良辰的生命的第一天,他有1点能力值.第二天,有2点.第n天,就有n点.也就是S[i]=i 但是调皮的小A使用时光 ...

  10. python调用存储过程失败返回1787错误

    (1787, 'When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, the statements CREATE TEMPORARY TABLE and DROP T ...