Pandas学习1 --- 数据载入
import numpy as np
import pandas as pd
数据加载
首先,我们需要将收集的数据加载到内存中,才能进行进一步的操作。pandas提供了非常多的读取数据的函数,分别应用在各种数据源环境中,我们常用的函数为:
- read_csv
- read_table
- read_sql
q
1.1 加载csv数据
- header 表标题,可以使用整形和或者整形列表来指定标题在哪一行,None是无标题,默认infer首行
- sep 控制数据之间的分隔符号。read_csv方法,默认为逗号(,)
- names 设置列标签(相当于df.columns)
- index_col 可以指定有唯一标记的列来充当行标签
- usecols 指定感兴趣的列
# 加载数据集, 返回DataFram类型
df = pd.read_csv('/home/geoffrey/文档/33.csv', header=0, sep=',', usecols=['v:0', 'Points:0', 'Points:1', 'Points:2'])
df.head(10)
.dataframe thead tr:only-child th {
text-align: right;
}
.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
| v:0 | Points:0 | Points:1 | Points:2 | |
|---|---|---|---|---|
| 0 | 2.57150 | 1.23150 | -0.86263 | -0.40724 |
| 1 | 2.08420 | 1.15670 | -0.90047 | -0.34635 |
| 2 | 1.27970 | 0.76719 | -0.93330 | -0.26176 |
| 3 | 0.71951 | 0.63454 | -0.91585 | -0.22918 |
| 4 | 1.63080 | 0.81560 | -0.93992 | -0.20332 |
| 5 | 3.36400 | 1.50590 | -0.98745 | -0.19570 |
| 6 | 2.27160 | 0.82635 | -0.89883 | -0.19312 |
| 7 | 2.64630 | 0.96451 | -0.85991 | -0.18457 |
| 8 | 0.91226 | 0.68853 | -0.83424 | -0.18203 |
| 9 | 4.55390 | 1.46730 | -0.82822 | -0.17043 |
1.2 加载数据库数据
pd.read_sql(sql语句, 连接对象)
import sqlite3
# 创建连接,创建数据库
con = sqlite3.connect('test.db')
# SQL语句
sql = 'create table person(id int primary key, name varchar(100))'
con.execute(sql)
# 插入数据
sql = 'insert into person(name) values("Geoffrey")'
con.execute(sql)
con.commit()
# 查看数据
sql = 'select * from person'
pd.read_sql(sql, con)
.dataframe thead tr:only-child th {
text-align: right;
}
.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
| id | name | |
|---|---|---|
| 0 | None | Geoffrey |
1.3 数据流处理
数据流.getvalue() # 注意,写入后指针在数据流的末尾,需要调整指针
from io import StringIO # 类文件对象(缓存区)
# 创建缓存区
sio = StringIO()
# 向缓存区写入数据
df.to_csv(sio)
# 读取数据
sio.getvalue()
',0,1,2\n0,1,2,3.0\n1,4,5,6.0\n2,7,8,\n'
# 调整指针到缓存区头部
sio.seek(0)
sio.read()
',0,1,2\n0,1,2,3.0\n1,4,5,6.0\n2,7,8,\n'
2. 写入数据
DataFrame与Series对象的to_csv方法:
该方法可以将数据写入:
- 文件中
- 数据流中
常用参数
- sep 指定分隔符
- header 是否写入标题行
- na_rep 空值的表示
- index 是否写入索引
- index_label 索引字段的名称
- columns 写入的字段
df = pd.DataFrame([
[1, 2, 3],
[4, 5, 6],
[7, 8, np.nan] # 含有
])
df
.dataframe thead tr:only-child th {
text-align: right;
}
.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
| 0 | 1 | 2 | |
|---|---|---|---|
| 0 | 1 | 2 | 3.0 |
| 1 | 4 | 5 | 6.0 |
| 2 | 7 | 8 | NaN |
df.to_csv('test.csv', sep=',', header=True, index=True, na_rep='空', columns=[0, 2])
pd.read_csv('test.csv')
.dataframe thead tr:only-child th {
text-align: right;
}
.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
| Unnamed: 0 | 0 | 2 | |
|---|---|---|---|
| 0 | 0 | 1 | 3.0 |
| 1 | 1 | 4 | 6.0 |
| 2 | 2 | 7 | 空 |
Pandas学习1 --- 数据载入的更多相关文章
- pandas学习(数据分组与分组运算、离散化处理、数据合并)
pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 ...
- pandas学习(创建多层索引、数据重塑与轴向旋转)
pandas学习(创建多层索引.数据重塑与轴向旋转) 目录 创建多层索引 数据重塑与轴向旋转 创建多层索引 隐式构造 Series 最常见的方法是给DataFrame构造函数的index参数传递两个或 ...
- pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)
pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...
- pandas学习(创建数据,基本操作)
pandas学习(一) Pandas基本数据结构 Series类型数据 Dataframe类型 基本操作 Pandas基本数据结构 两种常用数据结构: Series 一维数组,与Numpy中的一维ar ...
- pandas学习(四)--数据的归一化
欢迎加入python学习交流群 667279387 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学习(四)–数据 ...
- Pandas学习(一)——数据的导入
欢迎加入python学习交流群 667279387 学习笔记汇总 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学 ...
- 【转】Pandas学习笔记(二)选择数据
Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...
- 吴裕雄--天生自然python学习笔记:pandas模块导入数据
有时候,手工生成 Pandas 的 DataFrame 数据是件非常麻烦的事情,所以我们通 常会先把数据保存在 Excel 或数据库中,然后再把数据导入 Pandas . 另 一种情况是抓 取网页中成 ...
- 用scikit-learn和pandas学习线性回归
对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了. 1. 获取数据,定义问题 没有数据,当然没法研究机器学习 ...
随机推荐
- Confluence 6 数据库整合的方法 2:针对有大量附件的运行实例
设置准备 这个方法仅仅针对附件存储在文件系统中.如果你存储附件在数据库中,请参考 Attachment Storage Configuration 文档中的内容来找到如何在 2 种不同的文件存储方式之 ...
- mysql之视图,触发器,事务等。。。
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- 最短路径之Bellman-Ford算法
第一行为源点个数,边的个数m 接下来m行为a->b和权值 5 52 3 21 2 -31 5 54 5 23 4 3 Bellman-Ford算法(1): #include<iostrea ...
- follow
public function follow(Request $request, FeedModel $model, FeedRepository $repository) { if (is_null ...
- Gson将字符串转map时,int默认为double类型
gson能够将json字符串转换成map, 但是在转成map时, 会默认将字符串中的int , long型的数字, 转换成double类型 , 数字会多一个小数点 , 如 1 会转成 1.0 Gs ...
- Jmeter卡住解决方案
windows环境下,修改jmeter.bat: set HEAP=-Xms256m -Xmx256m set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m 改为: ...
- spring cloud 使用ribbon简单处理客户端负载均衡
假如我们的multiple服务的访问量剧增,用一个服务已经无法承载, 我们可以把Hello World服务做成一个集群. 很简单,我们只需要复制Hello world服务,同时将原来的端口8762修改 ...
- @ResponseBody//该注解会将返回值转为json格式并放到响应体中返回到前台
- 常见的HTTP响应状态码解析
概要 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果.借助于状态码,浏览器(或者说用户)可以知道服务器是正常的处理了请求,还是出现了错误. 状态码以3位数字和原因短语组成,例如 200 ...
- error: each element of 'ext_modules' option must be an Extension instance or 2-tuple
在编译cython扩展时出现. 解决办法: 必须先import setup再import extension,否则报错 from setuptools import setup from distut ...