前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用python做科学计算之pandas入门简介

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

作者头像
刀刀老高
发布2018-04-11 11:13:18
7230
发布2018-04-11 11:13:18
举报
文章被收录于专栏:奇点大数据奇点大数据

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

数据读取

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

通过csv文件读取数据:

代码语言:javascript
复制
$ pip instal pandas
$ python
>>> import pandas as pd
>>> data = pd.read_csv('test.csv')

通过mysql读取数据:

代码语言:javascript
复制
$ 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)的行

代码语言:javascript
复制
>>> 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

数据处理

取行列数量:

代码语言:javascript
复制
>>> data.shape #6行,5列
(6, 5)

取行列名:

代码语言:javascript
复制
>>> data.columns
Index([u'x', u'y', u'shape', u'color', u'xx'], dtype='object')
与sql比较:

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

代码语言:javascript
复制
>>> 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;

代码语言:javascript
复制
>>> 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;

代码语言:javascript
复制
>>> data.groupby('color').size() 
    color
1    3
2    3
dtype: int64

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

代码语言:javascript
复制
>>> 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

数据展示

代码语言:javascript
复制
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')                            #保存成图片
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pandas是一个开源的python数据分析和处理包,使用灵活方便,性能高,速度快,简单介绍一下它里面比较常用的功能
    • 数据读取
      • 数据清洗
        • 数据处理
          • 与sql比较:
      • 数据展示
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档