Pandas读取的数据为DataFrame类型,而DataFrame可以写入到各种格式的文件中,其中包括json、html、文本文件、数据库、Excel文件等等。(注:DataFrame对象可以转化为Numpy的ndarray对象,通过to_numpy函数)。

Pandas内置了10余种数据源读取函数和对应的数据写入函数,常见的数据源有3种,分别为数据库数据,文本文件(包括txt和csv文件)和Excel文件。

下面主要介绍文本文件以及Excel文件的读取:

目录

  • 1.读写文本文件
    • 1.1 文本文件的写入
    • 1.2 文本文件的读取
    • 1.3 文本文件读写的例子
  • 2.读写Excel文件
    • 2.1 Excel文件的写入
    • 2.2 Excel文件的读取
    • 2.3 Excel文件读写的例子

1.读写文本文件

csv文件是一种用分隔符分隔的文件格式,因为其分隔符不一定是逗号,因此又被称为字符分隔文件。csv文件也是一种文本文件,因此也可以通过文本文件的读取函数对csv文件进行读取。

1.1 文本文件的写入

对于DataFrame数据,可以写入到各种格式的文件中,其中包括json、html、使用DataFrame对象的to_csv函数实现csv文件的写入,该函数将DataFrame数据写入到文本文件中。

该函数的语法及常用参数如下:

DataFrame.to_csv(path_or_buf=None, sep=",", na_rep="", float_format=None, columns=None, header=True, index=True, index_label=None, mode="w", encoding=None, compression="infer", quoting=None, quotechar='"', line_terminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal=".",)

参数介绍:

path_or_buf:接收string,代表文件路径
seq:接收string,代表分隔符,默认’,’
na_rep:接收string,代表缺失值,默认’’
columns:接收list,代表写入的列名,默认none
header:接收boolean,代表是否将列名写入,默认true
index: 接收boolean,代表是否将行名写入,默认true
index_label: 接收sequence,代表行索引名,默认None
mode:接收特定string,代表数据写入模式,默认w
encoding:接收string,代表存储文件的编码方式,默认None

1.2 文本文件的读取

pandas提供了read_table来读取文本文件,提供了read_csv函数来读取csv文件。对于这两个函数的很多参数是相同的,由于其参数过多,下面只介绍常用的参数如下:

filepath: 接收string。代表文件路径。无默认
sep: 接收string,代表分隔符,read_csv 默认为’,’, read_table 默认为制表符‘Tab’
header: 接收int或sequence表示将某行数据作为列名。默认为infer,表示自动识别,None表示数据里面不含列名
names: 接收array,表示列名,默认为None
engine:接收c或者python。代表数据解析引擎。默认为c
nrows:接收int,表示读取前n行。默认为None
usecols:接收元组,读取的为该元组中对应的列
dtype:接收dict,可以读取并结构化数据类型

1.3 文本文件读写的例子

1.准备要保存的数据
4行3列数据,列名为’age’, ‘name’, ‘sex’

import numpy as np
import pandas as pd
from pandas import DataFramex = np.arange(12).reshape(4, 3)
data = DataFrame(x, columns=['age', 'name', 'sex'])  # 将ndarray数组变为dataFrame
print(data.values)  # 输出该dataFrame数据


2.写入文件
将dataframe类型的数据存入文件3.csv,分隔符为" , "

data.to_csv('3.csv', sep=',')  # 此处可以通过columns控制写入的列,例如columns=['age']表示仅将age这一列数据写入


将dataframe类型的数据存入文件3.txt,分隔符为tab,不将列名和行名写入

data.to_csv('3.txt', sep='\t', header=False, index=False)


3.读取3.csv中的数据
使用read_csv读取3.csv中前两行的数据

x1 = pd.read_csv('3.csv', sep=',', encoding='utf-8', nrows=2, index_col=0)
print(x1)


使用read_table读取3.txt中前两行前两列的数据,并指定列名为’age’, ‘name’

x2 = pd.read_table('3.txt', sep='\t', encoding='utf-8', names=['age', 'name'], usecols=(0, 1), nrows=2)
print(x2)


完整代码:

import numpy as np
import pandas as pd
from pandas import DataFramex = np.arange(12).reshape(4, 3)
data = DataFrame(x, columns=['age', 'name', 'sex'])  # 将ndarray数组变为dataFrame
print(data.values)  # 输出该dataFrame数据data.to_csv('3.csv', sep=',')  # 此处可以通过columns控制写入的列,例如columns=['age']表示仅将age这一列数据写入
data.to_csv('3.txt', sep='\t', header=False, index=False)x1 = pd.read_csv('3.csv', sep=',', encoding='utf-8', nrows=2, index_col=0)
print(x1)x2 = pd.read_table('3.txt', sep='\t', encoding='utf-8', names=['age', 'name'], usecols=(0, 1), nrows=2)
print(x2)

运行结果:

2.读写Excel文件

2.1 Excel文件的写入

使用DataFrame对象的to_excel函数实现excel文件的写入,该函数将DataFrame数据写入到excel文件中。

DataFrame.to_excel(excel_writer=None, sheet_name="Sheet1", na_rep="", header=True, index=True, index_label=None, mode='w', encoding=None)

to_excel函数与to_csv函数常用的参数基本一致,区别在于to_excel函数指定存储文件的文件路径参数名称为excel_writer,没有seq参数,另外增加了sheet_name参数,用来指定存储的excel sheet的名称,默认为sheet1

2.2 Excel文件的读取

pandas还提供了read_excel函数来读取xls与xlsx两种excel文件,其语法和常用参数如下:

pd.read_excel(io, sheet_name=0, header=0, names=None,dtype=None)

io:接收string
sheet_name:接收string,int,代表Excel表内分表的位置,默认为0
header:接收int或sequence,表示将某行数据作为列名,默认为infer表示自动识别,None表示数据里面不含列名
names: 接收array,表示列名,默认为None
dtype:接收dict,可以读取并结构化数据类型

2.3 Excel文件读写的例子

1.准备要保存的数据

4行3列数据,列名为’age’, ‘name’, ‘sex’

import numpy as np
import pandas as pd
from pandas import DataFramex = np.arange(12).reshape(4, 3)
data = DataFrame(x, columns=['age', 'name', 'sex'])  # 将ndarray数组变为dataFrame
print(data.values)  # 输出该dataFrame数据


2.写入文件
写入1.xlsx文件中的表一

data.to_excel(excel_writer='1.xlsx', sheet_name="Sheet1")

打开后该文件中的内容如下:

3.读取1.xlsx文件
读取1.xlsx中的表1的内容,此处index_col=0参数表明第一列为索引列,不是数据内容,没有该参数,显示的内容会有第一列0,1,2,3的内容。

a = pd.read_excel('1.xlsx', sheet_name=0, index_col=0)


完整代码:

import numpy as np
import pandas as pd
from pandas import DataFramex = np.arange(12).reshape(4, 3)
data = DataFrame(x, columns=['age', 'name', 'sex'])
print(data)data.to_excel(excel_writer='./data/1.xlsx', sheet_name="Sheet1")  # 写入1.xlsx文件中的表一
# 读取1.xls中表索引为0的表的数据
a = pd.read_excel('./data/1.xlsx', sheet_name=0, index_col=0)
print(a)

运行结果:

pandas读写文件相关推荐

  1. python读取文件路径乱码 linux_Python之pandas读写文件乱码的解决方法

    Python之pandas读写文件乱码的解决方法 python读写文件有时候会出现 'XXX'编码不能打开XXX什么的,用记事本打开要读取的文件,另存为UTF-8编码,然后再用py去读应该可以了.如果 ...

  2. python pandas 读写 csv 文件

    python pandas 读写 csv 文件 具体看官方文档 https://www.pypandas.cn/docs/user_guide/io.html#csv-文本文件 import pand ...

  3. python处理多个excel数据_python 数据分析基础 day8-pandas读写多个excel文件

    今天是读<python数据分析基础>的第8天,今天的读书笔记的内容为利用pandas读写多个excel文件,当中涉及到读写excel文件的多个工作表. 大致原理如下: glob.glob( ...

  4. 数据分析从零开始实战,Pandas读写Excel/XML数据

    点击查看第一篇文章: 数据分析从零开始实战,Pandas读取HTML页面+数据处理解析_ 数据分析 从零开始到实战,Pandas读写CSV数据_ 数据分析 从零开始到实战,Pandas读写CSV数据 ...

  5. python pandas读取excel-Python使用Pandas读写Excel实例解析

    这篇文章主要介绍了Python使用Pandas读写Excel实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Pandas是python的一个 ...

  6. python中newfile是干嘛用的_Python基础介绍 | File I\O 读写文件

    如何用Python读写文件呢?我们有许多种办法,包括使用Pandas或者使用os相关的工具,我们来看一下: 首先,得明白文件路径的事情: import os current_file = os.pat ...

  7. python pandas写入_51-python3 pandas读写excel

    0. 前言 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模 ...

  8. with open新创建的文件在哪找_Python 基本功: 4. 读写文件

    基本功3 教程带你了解了 Python 自带的几种数据类型: 多多教Python:Python 基本功: 3. 数据类型​zhuanlan.zhihu.com 在知道如何在 Python 中创建不同类 ...

  9. Python Pandas读取文件

    Python Pandas读取文件 当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步.Panda 提供了多种读取数据的方法: read_csv() 用于读取文本 ...

最新文章

  1. windows 软件安装事件_苹果安装windows,报windows支持软件未能存储到所选驱动器
  2. Ubuntu 14.04下java开发环境的搭建--2--Eclipse的安装
  3. java输出gc_GC输出澄清
  4. C什么k什么_cssci跟c刊有什么区别
  5. C#应用程序单例并激活程序的窗口 使其显示在最前端
  6. 前端学习(2376):项目初始化
  7. Java并发编程以及并发须知的几个概念:什么是线程安全?
  8. RHEL下安装配置基于2台服务器的MYSQL集群
  9. Hibernate一级缓存与二级缓存的区别
  10. zabbix 配置mysql_zabbix 配置mysql监控
  11. 10-算法 快速排序
  12. Centos 7 更改系统语言为中文
  13. Android之仿ele地图定位效果
  14. Jupyter更改默认浏览器
  15. HDU - 6438 Buy and Resell(思维+ 贪心)
  16. python中sep的用法:逗号的去除
  17. 拓扑概念和GIS拓扑函数
  18. 世界地图并不是世界的真实样貌!甚至误差非常大
  19. Part2:CSmartPtr
  20. 数学题(dfs or dp),木木不哭┭┮﹏┭┮(dp)

热门文章

  1. 若依(ruoyi)系统测试接口说明
  2. espritcam后处理教学_MsterCAM9.1常用后处理
  3. Bugku-Web-Wp
  4. EasyUI项目(登录、注册及权限树形展示)
  5. Vue进阶(幺柒捌):延伸阅读Sass、Scss、Less与Stylus编程特性
  6. Python 3.X | 一文看懂不懵圈:位置参数(必选参数)、默认参数、可变参数、关键字参数、形参、实参...
  7. 拍马屁是一种学问,更是一种生存方式
  8. 什么是单例模式?单例模式有什么作用?为什么要用单例模式
  9. android清除WebView使用的缓存的学习记录
  10. 人工智能算法面试大总结-总目录