用python做科学计算之pandas入门简介

pandas是一个开源的python数据分析和处理包,使用灵活方便,性能高,速度快,简单介绍一下它里面比较常用的功能

数据读取

它支持多种数据读取的方式这里简单介绍2种

通过csv文件读取数据:

$ pip instal pandas
$ python
>>> import pandas as pd
>>> data = pd.read_csv('test.csv')

通过mysql读取数据:

$ pip install sqlalchemy
$ pip install MySQL-python
$ python
>>> import pandas as pd
>>> from sqlalchemy import create_engine
>>> engine = create_engine('mysql://user:password@localhost/test')
>>> with engine.connect() as conn, conn.begin():
>>>   data = pd.read_sql_table('data', conn)
>>> data
    x    y  shape  color    xx
0  0.8          21      2  0.60
1  NaN  0.9     23      2  0.93
2  0.5  0.3    NaN      1  0.30
3  0.3  0.5     24      1  0.10
4  0.0  0.2     25      2  0.00
5  0.3  0.3     25      1  0.10

数据清洗

对不符合要求的数据进行清除,去掉数据里出现空值(NaN)的行

>>> data.dropna(how='any')
     x    y  shape  color   xx
0  0.8          21      2  0.6
3  0.3  0.5     24      1  0.1
4  0.0  0.2     25      2  0.0
5  0.3  0.3     25      1  0.1

数据处理

取行列数量:

>>> data.shape #6行,5列
(6, 5)

取行列名:

>>> data.columns
Index([u'x', u'y', u'shape', u'color', u'xx'], dtype='object')

与sql比较:

select语句比较:类似 select shape, color from data limit 3;

>>> data[['shape','color']].head(3) 
    shape  color
0     21      2
1     23      2
2    NaN      1

where语句比较:类似 select color from data where color = 2 limit 3;

>>> data[data['color'] == 2].head(3) 
     x    y  shape  color    xx
0  0.8          21      2  0.60
1  NaN  0.9     23      2  0.93
4  0.0  0.2     25      2  0.00

group by语句比较:类似 select color, count(*) from data where gruop by color;

>>> data.groupby('color').size() 
    color
1    3
2    3
dtype: int64

join语句比较:类似 select * from date inner join data2 on date.x = date2.x;

>>> pd.merge(data, data2, on='x') 
     x  y_x  shape_x  color_x  xx_x  y_y  shape_y  color_y  xx_y
0  0.8            21        2  0.60            21        2  0.60
1  NaN  0.9       23        2  0.93  0.9       23        2  0.93
2  0.5  0.3      NaN        1  0.30  0.3      NaN        1  0.30
3  0.3  0.5       24        1  0.10  0.5       24        1  0.10
4  0.3  0.5       24        1  0.10  0.3       25        1  0.10
5  0.3  0.3       25        1  0.10  0.5       24        1  0.10
6  0.3  0.3       25        1  0.10  0.3       25        1  0.10
7  0.0  0.2       25        2  0.00  0.2       25        2  0.00

数据展示

pip install matplotlib
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> d = {'hubei': 20, 'guangdong': 10, 'zhejiang': 15} #演示数据key:value对 
>>> ts = pd.Series(d)                                  #序列化数据
>>> ts.plot(kind='barh')                               #选择绘制成水平条形图
>>> plt.savefig('test.png')                            #保存成图片

原文发布于微信公众号 - 奇点(qddata)

原文发表时间:2015-12-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

Go 2.0发布在即,程序员有太多话要说

Go语言的开发者正着手准备开发2.0版本,并从以下三个方面发布了初步的设计方案(非官方正式版),以供社区开展讨论:

90310
来自专栏海说

深入理解计算机系统(3.2)---数据格式、访问信息以及操作数指示符

  本文的内容其实可以成为汇编语言的基础,因为汇编语言大部分时候是在操作一些我们平时开发看不到的东西,因此本文的目的就是搞清楚,汇编语言都是在操作些什么东西。或...

9720
来自专栏24K纯开源

Python 3.x自定义迭代器对象

Python 3.x与Python 2.x之间存在着较多的语法细节差异。今天在看Python核心编程的时候,说到了自定义迭代器对象。于是动手将源码打了一遍,原书...

23760
来自专栏python学习路

二、Python介绍

Python 是一门什么样的语言? python是一门动态解释性的强类型定义语言。 编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、...

41140
来自专栏决胜机器学习

设计模式专题(五)——工厂方法模式

设计模式专题(五)——工厂方法模式 (原创内容,转载请注明来源,谢谢) 一、概述 1、工厂方法与简单工厂模式区别 工厂方法模式与简单工厂模式不同 简单工厂模...

39790
来自专栏海说

深入理解计算机系统(3.2)---数据格式、访问信息以及操作数指示符

  本文的内容其实可以成为汇编语言的基础,因为汇编语言大部分时候是在操作一些我们平时开发看不到的东西,因此本文的目的就是搞清楚,汇编语言都是在操作些什么东西。或...

13640
来自专栏PhpZendo

PHP 多任务协程处理

上周 有幸和同事一起在 SilverStripe 分享最近的工作事宜。今天我计划分享 PHP 异步编程,不过由于上周我聊过 ReactPHP;我决定讨论一些不一...

17610
来自专栏猿湿Xoong

一个bit一个bit的进行 Base64 白话科普,看不懂算你输

12140
来自专栏熊二哥

GOF设计模式快速学习

这段时间,学习状态比较一般,空闲时基本都在打游戏,和研究如何打好游戏,终于通过戏命师烬制霸LOL,玩笑了。为了和"学习"之间的友谊小船不翻,决定对以往学习过的G...

21190
来自专栏程序人生

Promise: 给我一个承诺,我还你一个承诺

处理concurrent programming,除了threading/multi-processing外,各家语言都有自己的绝活:erlang/elixir...

30640

扫码关注云+社区

领取腾讯云代金券