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…

java 和 区别_java 和 =的区别

java >> 和 >>> 以及 >>> 的区别可能大家都知道java中>> 和 >>> 的区别&#xff0c;那这里我也啰嗦一下&#xff0c;>> 和 >>> 都是右移操作&#xff0c;只不过>>>是无符号右移&#xff0c;也就是右移之后高位…

java exception 二次抛出_java – 如何在scheduleWithFixedDelay抛出异常时重新启动计划?...

你可能应该在一个while(true)循环中包含try块,因为如果第一次运行没有抛出异常,你将退出你的方法,如果第二次调用抛出一个,你将无法捕获它.我还会在自己的线程中运行递归调用,以避免在事情变坏时出现StackOverFlow错误的风险.所以它看起来像这样&#xff1a;private void start…

深度学习试题_高中生物:今年高考试题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;并支…

JAVA vector的遍历_谈谈vector容器的三种遍历方法

说明&#xff1a;本文仅供学习交流。转载请标明出处。欢迎转载&#xff01;vector容器是最简单的顺序容器&#xff0c;其用法相似于数组。实际上vector的底层实现就是採用动态数组。在编敲代码的过程中。经常会变量容器中的元素&#xff0c;那么怎样遍历这些元素呢&#xff1f;…

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周年庆典&…

java版本lstm_LSTM java 实现

由于实验室事情缘故&#xff0c;需要将Python写的神经网络转成Java版本的&#xff0c;但是python中的numpy等啥包也不知道在Java里面对应的是什么工具&#xff0c;所以索性直接寻找一个现成可用的Java神经网络框架&#xff0c;于是就找到了JOONE&#xff0c;JOONE是一个神经网络…

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

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

python中np没有定义_python中的np.empty_python – np.empty,np.zeros和np.one

我很好奇它使用np.empty而不是np.zeros实际上有多大差异,还有关于np.ones的差异.我运行这个小脚本来测试每个创建一个大型数组所需的时间&#xff1a;import numpy as npfrom timeit import timeitN 10_000_000dtypes [np.int8, np.int16, np.int32, np.int64,np.uint8, np.u…

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

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

java s1_转!!Java 基础面试题的剖析: short s1=1;s1 = s1 +1 报错? s1+=1 呢

package common;public class ShortTypeTest {/** param args*/public static void main(String[] args) {// TODO Auto-generated method stubshort s1 1; s1 (short) (s1 1);//简单类型short s21; s2 1;//复合类型,复合赋值操作符,System.out.println(s1";"s2);…

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

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