pandas输出到excel_python读写excel等数据文件方法汇总

904d1d73-b712-eb11-8da9-e4434bdf6706.png

python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv、txt等)、excel文件、数据库文件、api等。

下面整理下python有哪些方式可以读取数据文件。

1. python内置方法(read、readline、readlines)

  • read(): 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长
  • readline() :每次读取一行内容。内存不够时使用,一般不太用
  • readlines() :一次性读取整个文件内容,并按行返回到list,方便我们遍历

具体用法可见: 一文搞懂python文件读写

2. 内置模块(csv)

python内置了csv模块用于读写csv文件,csv是一种逗号分隔符文件,是数据科学中最常见的数据存储格式之一。 csv模块能轻松完成各种体量数据的读写操作,当然大数据量需要代码层面的优化。

  • csv模块读取文件
# 读取csv文件
import csv  
with open('test.csv','r') as myFile:  lines=csv.reader(myFile)  for line in lines:  print (line)
  • csv模块写入文件
import csv  
with open('test.csv','w+') as myFile:      myWriter=csv.writer(myFile)  # writerrow一行一行写入myWriter.writerow([7,8,9])  myWriter.writerow([8,'h','f'])  # writerow多行写入myList=[[1,2,3],[4,5,6]]  myWriter.writerows(myList)

3. 使用numpy库(loadtxt、load、fromfile)

  • loadtxt方法

loadtxt用来读取文本文件(包含txt、csv等)以及.gz 或.bz2格式压缩文件,前提是文件数据每一行必须要有数量相同的值。

import numpy as np
# loadtxt()中的dtype参数默认设置为float
# 这里设置为str字符串便于显示
np.loadtxt('test.csv',dtype=str)
# out:array(['1,2,3', '4,5,6', '7,8,9'], dtype='<U5')
  • load方法

load用来读取numpy专用的.npy, .npz 或者pickled持久化文件。

import numpy as np
# 先生成npy文件
np.save('test.npy', np.array([[1, 2, 3], [4, 5, 6]]))
# 使用load加载npy文件
np.load('test.npy')
'''
out:array([[1, 2, 3],[4, 5, 6]])
'''
  • fromfile方法

fromfile方法可以读取简单的文本数据或二进制数据,数据来源于tofile方法保存的二进制数据。读取数据时需要用户指定元素类型,并对数组的形状进行适当的修改。

import numpy as np
x = np.arange(9).reshape(3,3)
x.tofile('test.bin')
np.fromfile('test.bin',dtype=np.int)
# out:array([0, 1, 2, 3, 4, 5, 6, 7, 8])

4. 使用pandas库(read_csv、read_excel等)

pandas是数据处理最常用的分析库之一,可以读取各种各样格式的数据文件,一般输出dataframe格式。 如:txt、csv、excel、json、剪切板、数据库、html、hdf、parquet、pickled文件、sas、stata等等

  • read_csv方法
    read_csv方法用来读取csv格式文件,输出dataframe格式。
import pandas as pd
pd.read_csv('test.csv')
  • read_excel方法
    读取excel文件,包括xlsx、xls、xlsm格式
import pandas as pd
pd.read_excel('test.xlsx')
  • read_table方法
    通过对sep参数(分隔符)的控制来对任何文本文件读取
  • read_json方法
    读取json格式文件
df = pd.DataFrame([['a', 'b'], ['c', 'd']],index=['row 1', 'row 2'],columns=['col 1', 'col 2'])
j = df.to_json(orient='split')
pd.read_json(j,orient='split')
  • read_html方法
    读取html表格
  • read_clipboard方法
    读取剪切板内容
  • read_pickle方法
    读取plckled持久化文件
  • read_sql方法
    读取数据库数据,连接好数据库后,传入sql语句即可
  • read_dhf方法
    读取hdf5文件,适合大文件读取
  • read_parquet方法
    读取parquet文件
  • read_sas方法
    读取sas文件
  • read_stata方法
    读取stata文件
  • read_gbq方法
    读取google bigquery数据

pandas学习网站: https://pandas.pydata.org/

5、读写excel文件(xlrd、xlwt、openpyxl等)

python用于读写excel文件的库有很多,除了前面提到的pandas,还有xlrd、xlwt、openpyxl、xlwings等等。

主要模块:

  • xlrd库: 从excel中读取数据,支持xls、xlsx
  • xlwt库: 对excel进行修改操作,不支持对xlsx格式的修改
  • xlutils库: 在xlw和xlrd中,对一个已存在的文件进行修改
  • openpyxl: 主要针对xlsx格式的excel进行读取和编辑
  • xlwings: 对xlsx、xls、xlsm格式文件进行读写、格式修改等操作
  • xlsxwriter: 用来生成excel表格,插入数据、插入图标等表格操作,不支持读取
  • Microsoft Excel API: 需安装pywin32,直接与Excel进程通信,可以做任何在Excel里可以做的事情,但比较慢

6. 操作数据库(pymysql、cx_Oracle等)

python几乎支持对所有数据库的交互,连接数据库后,可以使用sql语句进行增删改查。

主要模块:

  • pymysql: 用于和mysql数据库的交互
  • sqlalchemy: 用于和mysql数据库的交互
  • cx_Oracle: 用于和oracle数据库的交互
  • sqlite3: 内置库,用于和sqlite数据库的交互
  • pymssql: 用于和sql server数据库的交互
  • pymongo: 用于和mongodb非关系型数据库的交互
  • redis、pyredis: 用于和redis非关系型数据库的交互

使用参考地址: https://blog.csdn.net/a87b01c14/article/details/51546727

关于如何使用python连接mysql: pymysql操作实例

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

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

相关文章

dijkstra算法_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

讲在前面的话&#xff0c;图的算法太多&#xff0c;理论知识肯定一篇文章讲不完&#xff0c;关于理论知识大家可以参考教材Sedgewick的《算法》或reference的链接,本文主要还是想在一篇文章中记录六种算法的Python代码。同样想吐槽一下&#xff0c;虽然网上博客很多&#xff0c…

深度学习试题_高中生物:今年高考试题3点显著变化及5个备考建议!不看准吃亏...

新课标下的新高考即将开启&#xff0c;最后一届旧高考模式在不同寻常的2020年七月份已圆满结束。今年全国Ⅰ卷理综生物试题有几个明显变化。1.内容、范围不变&#xff0c;考查理解能力和实践能力加强作为过渡期的高考&#xff0c;全国高考Ⅰ卷理综生物试题题型结构保持不变&…

电脑工具栏怎么调整到下面_雷电模拟器4.0怎么玩召唤与合成 一键下载轻松游玩 - 工具软件...

召唤与合成是一款既不是卡牌&#xff0c;也不是消除&#xff0c;也不算策略的高烧脑解谜手游&#xff0c;很多玩家想要利用雷电模拟器来在电脑上运行手游&#xff0c;却不知道怎么操作&#xff0c;下面就来教教大家如何在雷电模拟器上玩召唤与合成。1、首先要下载游戏&#xff…

ESP8266网络相框采用TFT_eSPI库TJpg_Decoder库mixly库UDP库实现图片传送

用ESP8266和TFT_ESPI模块来显示图片数据。具体来说&#xff0c;我们将使用ILI9431显示器作为显示设备&#xff0c;并通过UDP协议将图片数据从发送端传输到ESP8266。最后&#xff0c;我们将解析这些数据并在TFT屏幕上显示出来。在这个过程中&#xff0c;我们将面临一些编程挑战&…

c++ vector 一部分_为什么现在的手机都采用Type-C接口?它到底好在哪里?看完你就明白了...

不知道你们有没有发现&#xff0c;现如今的安卓手机几乎都使用Type-C接口。前两年还只是大部分手机采用的Micro USB接口&#xff0c;只有很小一部分使用的是Type-C接口。那到底是什么原因导致它&#xff0c;能在那么快的速度几乎在业内通用呢&#xff1f;一、使用方便&#xff…

java listen_Java进阶-IO基础

计算机最重要的功能是处理数据。一个有用的计算机语言需要拥有良好的IO功能&#xff0c;以便让未处理的数据流入程序&#xff0c;让已处理的数据流出。与其他语言相比&#xff0c;Java的IO功能显得复杂。在其他语言中&#xff0c;许多IO功能(比如读取文件)&#xff0c;是被封装…

gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...

忘记了文件放在什么地方&#xff1f;文件太多不能一下子找到&#xff1f;那么你也许可以试试这款软件——ProFind for mac版&#xff0c;这是一款适用于macOS系统的文件搜索工具&#xff0c;它具有强大的功能和出色的性能&#xff0c;可为macOS提供高级文件搜索&#xff0c;并支…

c++ ftp服务端_FTP客户端软件介绍及使用

FTP客户端软件介绍及使用 客户端软件&#xff1a; ftp&#xff0c;lftp&#xff0c;lftpget&#xff0c;wget&#xff0c;curl ftp -A ftpserver port -A 主动模式 –p 被动模式 lftp –u username ftpserver lftp usernameftpserver lftpget ftp://ftpserver/pub/file gftp&am…

java中怎么使用json数据_JAVA中使用JSON进行数据传递

1.是不是只有xml传递数据的技术才是webservice&#xff1f;可以这么理解。webservice是基于SOAP协议&#xff0c;SOAP协议是基于XML的文本协议。所以webservice可以简单理解为是基于XML的传输技术&#xff0c;好比HTML是基于文本的传输协议。2.servlet是服务端的java程序的统称…

java 限制参数类型_java定义受限制的类型参数操作

有时您可能想限制可以在参数化类型中用作类型参数的类型。 例如&#xff0c;对数字进行操作的方法可能只希望接受Number或其子类的实例。 这就是有界类型参数的用途。受限制参数类型的方法示例要声明有界类型参数&#xff0c;请列出类型参数的名称&#xff0c;后跟extends关键字…

安卓手机运行ios教程_英雄联盟手游傻瓜安装教程,IOS/安卓双端可用!

软件/资料获取方式在文末正文&#xff1a;前几天发哥预告了一下LOL手游上线的事&#xff0c;本来以为国服也会同步上线&#xff0c;结果也是意料之中的跳票了&#xff0c;让我不禁想起当年玩魔兽世界时国服万年的TBC&#xff0c;不过据说LOL推迟上线是怕影响王者荣耀5周年庆典&…

easy excel date 类型解析报错_ptarchiver原理解析

pt-archiver原理解析作为MySQL DBA&#xff0c;可以说应该没有不知道pt-archiver了&#xff0c;作为pt-toolkit套件中的重要成员&#xff0c;往往能够轻松帮助DBA解决数据归档的问题。例如线上一个流水表&#xff0c;业务仅仅只需要存放最近3个月的流水数据&#xff0c;三个月前…

设计师电脑推荐笔记本_笔记本电脑选购推荐全攻略

笔记本电脑现如今在我们的生活中出镜率如此之高&#xff0c;不论是学生党查阅资料还是上班族的忙碌办公&#xff0c;抑或是电竞爱好者的游戏体验&#xff0c;都要依靠笔记本电脑来完成&#xff0c;但对于它的选购方法你了解多少&#xff1f;一千个人就有一千种不同的标准&#…

python内循环只执行一次_如何1分钟内从3600只股种选出黑马股,仅分享这一次(太透彻了)...

“1234”操盘定理中&#xff0c;1是指如何持牛股&#xff0c;2是指观念要正确&#xff0c;3是指看破十个现象&#xff0c;4是指抓热点。具体讲解下选股步骤盘后我们怎么去快速选出超短线需要密切关注的票呢?其实选股方法少说也有几千种&#xff0c;我想没有人统计过&#xff0…

java 运行时类型_Java基础之RTTI 运行时类型识别

运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制&#xff0c;在Java运行时&#xff0c;RTTI维护类的相关信息。多态(polymorphism)是基于RTTI实现的。RTTI的功能主要是由Class类实现的。Class类Class类是"类的类"(class of classes)。如果…

指定的服务已经标记为删除_你的电话号码被标记过吗?你知道这件事情还能赚钱吗?...

今天闲来无事和大家唠唠赚钱的小副业。“电话标记”&#xff0c;我被这事困惑了很多年&#xff0c;最近解决了&#xff0c;同时还发现&#xff0c;这个信息差能挣钱&#xff0c;文末还给到方法&#xff0c;执行力强的伙伴原样照做&#xff0c;0成本&#xff0c;马上开搞&#x…

mplab x ide 中文使用手册_SCI必备利器:翻译又快又准,强推这款超牛X的神器!...

随手转发给好友和朋友圈 编辑&#xff1a;科研小通再分享一款翻译神器&#xff0c;不用调用Google服务器&#xff0c;速度超快。实时翻译&#xff0c;服务器速度杠杠的。今天给大家安利一款超牛X的翻译神器&#xff1a;Mate Translate。官网首页https://gikken.co/mate-transla…

python流行趋势_Python流行度再创新高,学Python就从风变编程开始

10月初&#xff0c;全球编程语言社区TIOBE公布了2020年10月编程语言排行榜&#xff0c;排名情况相较前几个月变化不大&#xff0c;前十名分别为C、Java、Python、C 、C#、Visual Basic、JavaScript 、PHP、R和SQL。其中&#xff0c;Python继续稳居第三&#xff0c;且其受欢迎度…

8086汇编4位bcd码_238期中4头3尾,排列五第19239期爱我彩规

爱我彩规专业研究(七星彩、排列五) 前四位的铁码与定位规&#xff0c;有幸开通爱我彩规公众号&#xff0c;努力为大家提供稳定的号码参考。作者微信号awc1125。 逢星期二和星期天不在彩码课堂公众号转发&#xff0c;因星期二和星期天每日八篇巳排满&#xff0c;只发爱我彩规公…

centos6.5 编译安装mysql_Centos6.5编译安装mysql 5.7.14详细教程

此文实例给亲们分享了CENTOS6.5 编译mysql 5.7.14安装配置方法&#xff0c;供大家参考&#xff0c;具体内容如下mysql5.7.14 编译安装在自定义文件路径下下载安装包配置安装环境编译安装cmake\-DCMAKE_INSTALL_PREFIX/data/db5714 \-DMYSQL_DATADIR/data/db5714/var \-DMYSQL_U…