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

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

### 数据读取

```\$ pip instal pandas
\$ python
>>> import pandas as pd

```\$ pip install sqlalchemy
\$ pip install MySQL-python
\$ python
>>> import pandas as pd
>>> from sqlalchemy import create_engine
>>> with engine.connect() as conn, conn.begin():
>>> 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```

### 数据清洗

```>>> 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')                            #保存成图片```

244 篇文章48 人订阅

0 条评论

## 相关文章

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

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

90310

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

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

9720

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

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

23760

### 二、Python介绍

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

41140

39790

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

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

13640

17610

12140

21190

30640