pandas读写各种类型数据

read_X()通常是pandas模块下的,to_X()是dataframe的方法

CSV

读取

使用pandas.read_csv()方法,返回的是一个dataframe

csv默认是以","分割的

csv文件内容

1、read_csv()默认以第一行数据作为标题

2、调用dataframe的head()方法可以返回所有行数据,若传入一个n,则返回前n行数据。默认n=5

也可以使用nrows参数截取,并且是在跳行的基础上

 

3、若不希望第一行作为标题,或者在read_csv()中添加参数header=None

4、自定义列名(标题)

在read_csv()中传入参数names

5、跳行

上例中原标题也被读取出来了,通过参数skiprows可以跳行

6、指定分隔符

通过sep参数,可以传入正则表达式

比如有如下csv文件

7、分块处理大型文件

通过chunk参数可以指定每次处理的行数,返回类型为TextFileReader

TextFileReader由多个dataframe组成

写入

1、将dataframe写入csv,通过to_csv()方法

可以将header和index参数设置为False,不将列名和索引写入

2、写入NaN

将具有NaN数据的dataframe写入csv文件,此时NaN写入文件为空

若想要指定NaN写入的数据,通过na_rep参数指定

 

文本文件

读取

对于csv文件,也可以通过读取文本文件的方法来读取

1、通过dataframe.read_table(),其中传入参数sep分隔符

同样有header和skiprows参数

2、指定某列为索引

原文件:

通过属性index_col()传入指定列名

html

html的读写只针对于python中的dataframe和网页中的表格

写入

1、将dataframe转化为html

可以通过dataframe.to_html()方法,返回的是表格的html代码

2、保存为html文件

将html代码写入html文件中,通过File.write()实现

读取

1、通过pandas.read_html()实现,返回一个dataframe的列表

2、也可以读取http网址

XML

读取

pandas中没有提供直接读取xml文件的API,但可以借助lxml库来读取xml文件

当前有一个xml文件

通过lxml库下的objectify.parse()可以解析xml文件,返回的是一个元素树类型

可以通过元素树的getroot()方法获取根,即最外一层的data。此时root类型名即为最外层标签名

root下有student子标签,student下有name,age,city子标签。同样标签名即为类型名

root.student是一个由两个元素的列表,通过items()可以获取标签中所有元素

如果只想获取name的值,通过values()方法

比如想要访问lisi的age值

将xml转化为dataframe

根据具体xml格式确定好索引和列

EXCEL

pandas支持.xls和.xlsx两种类型的excel,通过to_excel和read_excel实现了写和读。pandas内部整合了xlrd模块

读取

1、当前有一个.xlsx文件,有2个sheet

通过read_excel函数可以返回一个dataframe,默认读取一个sheet

2、指定读取的表格,传入参数表名或者用索引表示

写入

将dataframe通过to_excel()写入到excel文件中,并可以指定表名

可见保存了索引和列名

JSON

通过read_json()和to_json()

json类型中数据通过jason格式转化可见,一列为一个字典

HDF5

HDF5是二进制文件格式的一种

python中需要用Pytable来处理HDF5格式的数据。pandas提供了一个叫HDFStore的类,类似于字典,用它来借助Pytable存储dataframe对象。因此必须引入HDFStore,位于pandas.io.pytables内

写入

首先声明一个HDFStore对象,并创建HDF5文件,以.h5为后缀

向.h5文件中加入这个dataframe,key值自定义,value为df。并且HDFStore对象需要flush到文件中

读取

取出dataframe,因为HDFStore类似于字典

pickle对象序列化

pickle模块或cPickle模块使用的数据格式是python中特有的序列化格式,它是一种可读的序列化方式,默认使用的ASCII表达式

序列化

首先需要引入pickle模块,通过字典来装载后调用pickle.dumps()方法实现序列化

写入

通过to_pickle将dataframe写入到.plk文件

 读取

数据库

pandas为操作数据库提供了同一的接口sqlalchemy,连接数据库使用create_engine函数,在这个函数中配置驱动器所需要的用户名密码端口和数据库实例

各种数据库的连接方法

SQLite

python内置了数据库SQLite3,它的数据实际上是一个文件

写入

会在当前目录下创建test.db文件

读取

read_sql函数中第一个参数指定表名

MySQL

创建连接,需安装mysql-connector-python模块,test为数据库名

如果+mysqldb需要安装mysql-python模块

写入

通过可视化软件可以观察到,index作为单独的一列

读取

1、读取全表

2、查询读取

通过read_sql_query函数可以传入一个mysql查询语句

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 类装饰器

1 装饰器无参数 class tracer: def __init__(self,func): self.calls 0 self.func func def __call__(self,*args): self.calls 1 print(call %s to %s %(self.calls, self.func.__name__)) self.func(*args) tracer def spam(a, b, c): print(a b c) …

【数据分析】使用pandas和numpy分析美国大选献金项目

1. 数据载入与总览 1.1 数据加载 #绘图工具 import matplotlib.pyplot as plt %matplotlib inline #数据处理工具 import numpy as np import pandas as pd from pandas import Series,DataFrame#数据路径自己指定,本案例数据路径就在当前文件夹下面子文件夹usa_e…

《容器技术系列》一1.4 Docker运行案例分析

本节书摘来华章计算机《容器技术系列》一书中的第1章 ,第1.4节,孙宏亮 著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.4 Docker运行案例分析 1.3节着重介绍了Docker架构中各个模块的功能,学完后我们可以对Docker的架构有一…

算术编码的原理与分析

转自:http://kulasuki115.blogcn.com/diary,201492702.shtml 前言 人类已进入信息时代,信息时代的重要特征是信息的数字化,人们越来越依靠计算机获取和利用信息,这就需要对信息的表示、存储、传输和处理等关键技术进行研究。我们…

3月22日AM

看了思维章节精讲视频课,并且总结了部分思维章节内容转载于:https://www.cnblogs.com/bgd140206102/p/6601440.html

阿里巴巴Dubbo实现的源码分析

Dubbo概述Dubbo是阿里巴巴开源出来的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及作为SOA服务治理的方案。它的核心功能包括: remoting:远程通讯基础,提供对多种NIO框架抽象封装,包括“同步…

POJ 2106-Boolean Expressions,双栈运用类似表达式求值!

Boolean Expressions 首先声明此题后台可能极水(毕竟这种数据不好造!)。昨天写了一天却总是找不到bug,讨论区各种数据都过了,甚至怀疑输入有问题,但看到gets也可以过,难道是思路错了&#xff1f…

H264 CAVLC 研究

目录 1 CAVLC概念 2 CAVLC原理 3 CAVLC编码流程 4 CAVLC解码流程 展开全部 1 CAVLC概念 2 CAVLC原理 3 CAVLC编码流程 4 CAVLC解码流程 收起 摘要纠错编辑摘要 CAVLC即基于上下文的自适应变长编码。H.264标准中使用CAVLC对4*4模块的亮度和色度残差数据进行编码。 CAVLC-CAVLC…

【MySQL 】学习笔记千行总结

/* Windows服务 */ -- 启动MySQLnet start mysql -- 创建Windows服务sc create mysql binPath mysqld_bin_path(注意:等号与值之间有空格)/* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES…

CCCC 连续因子

题意: 一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行…

Mybatis怎么能看是否执行了sql语句

项目需要学习mybatis中&#xff0c;本来mybatis也不是什么新技术&#xff0c;无奈之前没接触过。 验证缓存机制时&#xff0c;需要能看到是否sql被执行了。这就需要增加日志的打印 配置如下 在pom中增加如下依赖&#xff1a; <dependency> <groupId>org.bgee.log4j…

定时备份 MySQL 并上传到七牛

定时备份 MySQL 并上传到七牛 多数应用场景下&#xff0c;我们需要对重要数据进行备份、并放置到一个安全的地方&#xff0c;以备不时之需。 常见的 MySQL 数据备份方式有&#xff0c;直接打包复制对应的数据库或表文件(物理备份)、mysqldump 全量逻辑备份、xtrabackup 增量逻辑…

vue_props div赋值props定义变量 templete获取

vue_props div赋值props定义变量 templete获取 <div id"app"> <add v-bind:btn"h"></add> </div> <script> var vm new Vue({ el: #app, data: { h: "hello" }, components: { "add": { …

H.264句法和语法总结 句法元素的分层结构

在 H.264 定义的码流中&#xff0c;句法元素被组织成有层次的结构&#xff0c;分别描述各个层次的信息&#xff0c;如下图所示 在H.264 中&#xff0c;句法元素共被组织成 序列、图像、片、宏块、子宏块五个层次。 在这样的结构中&#xff0c;每一层的头部和它的数据部分形成管…

instanceof 的运用

2019独角兽企业重金招聘Python工程师标准>>> Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出&#xff0c;这个对象是否是这个特定类或者是它的子类的一个实例。 用法&#xff1a; result object i…

R 脚本读取汇总 Excel 表格数据

主要用到了 xlsx 和 rJava 包&#xff0c;打开 Excel 文件&#xff0c;读取各表格数据&#xff0c;再写入到汇总表。 下图为处理前的原始数据表格&#xff1a; 下图为处理后的数据&#xff1a; 代码实现 安装&加载包的函数实现。installed.packages() 函数获取所有已安装…

[Grid Layout] Place grid items on a grid using grid-column and grid-row

It’s possible to position a grid item anywhere on a grid track. To do this, let’s specify some grid-template-columns and grid-template-rows, and to the grid items, we’ll pass grid-column and grid-row some numeric values. <!DOCTYPE html> <html l…

【大数据】最新大数据学习路线(完整详细版,含整套教程)

大数据学习路线 java(Java se,javaweb) Linux(shell,高并发架构,lucene,solr) Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume) 机器学习(R,mahout) Storm(Storm,kafka,redis) Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spa…

264编码基本概念 FFMpeg的解码流程

下面转自http://topic.csdn.net/u/20081020/16/7156e0b2-dbfb-4b4f-af59-2be04cf9a420.html 的8楼 1、NAL、Slice与frame意思及相互关系 NAL指网络提取层&#xff0c;里面放一些与网络相关的信息Slice是片的意思&#xff0c;264中把图像分成一帧&#xff08;frame&#xff09;…

谷歌浏览器开发调试工具中Sources面板 js调试等 完全介绍

这次分享的是Chrome开发工具中最有用的面板Sources。 Sources面板几乎是我最常用到的Chrome功能面板&#xff0c;也是在我看来决解一般问题的主要功能面板。通常只要是开发遇到了js报错或者其他代码问题&#xff0c;在审视一遍自己的代码而一无所获之后&#xff0c;我首先就会打…