用python做科学计算之pandas入门简介
时间:2022-05-08
本文章向大家介绍用python做科学计算之pandas入门简介,主要内容包括pandas是一个开源的python数据分析和处理包,使用灵活方便,性能高,速度快,简单介绍一下它里面比较常用的功能、数据清洗、数据处理、数据展示、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
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') #保存成图片
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 技术分享 | 是谁删了表?
- CEF -version 3325完整编译教程
- 第09期:有关 MySQL 字符集的乱码问题
- 机器人系统建模与辨识工具箱sympybotic
- 微服务聚合Swagger文档,这波操作是真的香!
- CEF-version2623完整编译教程
- Node 中如何引入一个模块及其细节
- PHP 错误和异常处理(下)
- PHP 错误和异常处理(上)
- 玩转 PhpStorm 系列(一):主题篇
- 如何用云开发打造“万人同屏”高并发实时互动小程序
- 实战丨云开发帮你和「火箭少女」合个影!
- 开源数据闪回工具—binlog2sql介绍
- 盘点前端面试常见的15个TS问题,你能答对吗?
- 『深度思考』对CenterNet的一些思考与质疑·测试对比CenterNet与U版YoloV3速度与精度