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 --- 数据载入的更多相关文章

  1. pandas学习(数据分组与分组运算、离散化处理、数据合并)

    pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 ...

  2. pandas学习(创建多层索引、数据重塑与轴向旋转)

    pandas学习(创建多层索引.数据重塑与轴向旋转) 目录 创建多层索引 数据重塑与轴向旋转 创建多层索引 隐式构造 Series 最常见的方法是给DataFrame构造函数的index参数传递两个或 ...

  3. pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)

    pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...

  4. pandas学习(创建数据,基本操作)

    pandas学习(一) Pandas基本数据结构 Series类型数据 Dataframe类型 基本操作 Pandas基本数据结构 两种常用数据结构: Series 一维数组,与Numpy中的一维ar ...

  5. pandas学习(四)--数据的归一化

    欢迎加入python学习交流群 667279387 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学习(四)–数据 ...

  6. Pandas学习(一)——数据的导入

    欢迎加入python学习交流群 667279387 学习笔记汇总 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学 ...

  7. 【转】Pandas学习笔记(二)选择数据

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  8. 吴裕雄--天生自然python学习笔记:pandas模块导入数据

    有时候,手工生成 Pandas 的 DataFrame 数据是件非常麻烦的事情,所以我们通 常会先把数据保存在 Excel 或数据库中,然后再把数据导入 Pandas . 另 一种情况是抓 取网页中成 ...

  9. 用scikit-learn和pandas学习线性回归

    对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了. 1. 获取数据,定义问题 没有数据,当然没法研究机器学习 ...

随机推荐

  1. linux_OEL5.4_安装Oracle11g中文教程图解

    一.安装ORACLE10g 软件(11.2.0.0) 参考pdf:链接:http://pan.baidu.com/s/1pLHU94J 密码:keo8 (一)安装前的包支持 1. 虚拟机yum 环境搭 ...

  2. Java的动手动脑(五)

    日期:2018.11.1 星期四 博客期:021 Part1: 运行代码 class Grandparent { public Grandparent() { System.out.println(& ...

  3. Django框架之第二篇

    一.知识点回顾 1.MTV模型 model:模型,和数据库相关的 template:模板,存放html文件,模板语法(目的是将变量如何巧妙的嵌入到HTML页面中). views:视图函数 另加urls ...

  4. Python基础知识之大杂烩

    一.range 和 xrange 的区别 xrange 与 range 基本上都是在循环的时候用,两者的用法完全相同.所不同的是xrange生成的是一个生成器,而range生成的是一个list对象. ...

  5. C++ 使用LockWorkStation()的过程遇到的问题

    关于函数“LockWorkStation()”,参见:https://msdn.microsoft.com/en-us/library/windows/desktop/aa376875.aspx Ho ...

  6. mysql+redis+memcached

    mysql+redis+memcached 数据库 数据库设计 a. 单表 b. FK(单表:一张表存储时,如果有重复出现的字段为了防止硬盘的浪费,所以做一个FK:去掉FK变成单表(这样子访问速度快了 ...

  7. mysql的基础知识

    一.存储引擎 mysql> show engines; +--------------------+---------+------------------------------------- ...

  8. .NoSuchBeanDefinitionException: No bean named 'userService' available

  9. requests之json系列(一)

    以post方式获取接口指定的相关信息 #! /usr/bin/env python # coding=utf-8 import json import urllib import requests i ...

  10. VUE失去焦点提交修改值

    xxx.vue <input class="ml6 w85 bdr-6 bd-none text-center" type="text" v-model= ...