pandas---文件导入和导出细节详解
文章目录
- 数据的导入和导出
- 导入文件
- 导入文本文件:pd.read_csv()
- 导入Excel文件:pd.read_excel()
- 相对路径和绝对路径
- 默认列索引和行索引
- 不要列索引
- 指定某行为列索引
- 添加列索引
- 指定行索引
- 读取指定的列
- 指定分隔符
- 指定读入excel的sheet页
- 导出数据
- 写入文本文件:df.to_csv()
- 写入excel文件:df.to_excel()
- 存储行索引
- 不存储行索引
- 不存储列索引
数据的导入和导出
Pandas能从文本文件和Excel文件中读入数据,形成dataframe,也可以将dataframe导出到文本文件、Excel文件中存储起来。
导入函数有(1)pd.read_csv():导入后缀名为.csv,.txt的文本文件;(2)pd.read_excel():导入后缀名为.xlsx的Excel文件。导出函数有(1)df.to_csv)():将数据存储到csv文件或txt文件中;(2)df.to_excel():将数据存储到Excel文件中;
无论是导入函数还是导出函数,都有参数header,表示dataframe的列索引。而行索引在导入函数中用参数index_col表示,将某列指定为行索引;行索引在导出函数中用参数index表示,指示是否要存好行索引。
导入文件
导入文本文件:pd.read_csv()
pd.read_csv()函数不光可以导入csv文件,也可以导入txt文件。
# 导入test.csv文件
df = pd.read_csv('test.csv')
# 导入test.txt文件
df = pd.read_csv('test.txt')
导入Excel文件:pd.read_excel()
# 导入test.xlsx文件
df = pd.read_excel('test.xlsx')
相对路径和绝对路径
导入文件时,要指定文件所在的路径,可以是相对路径,也可以是绝对路径。
# 导入windows下的绝对路径:导入E盘下的test.csv
pd.read_csv('E:\test.csv')
# 导入mac下的绝对路径:导入xxx文件夹下的test.csv
pd.read_csv('/Users/xxx/test.csv')
相对路径指的是当前的py文件所在的路径。当要导入的文件和py文件在同一个文件夹下,则可以用相对路径导入。
pd.read_csv('test.csv')
路径的转义?
Location = r'./test.csv'
df = pd.read_csv(Location)
注意,因为斜线是一个特殊字符,在字符串之前放置前导的 r,将会把整个字符串进行转义。
默认列索引和行索引
导入文件时,若不指定列索引,则默认将文件中的第一行当成dataframe列索引,并且为数据自动添加整数行索引。
# 默认将test.csv中的第一行当为列索引,自动添加从0开始的整数索引
pd.read_csv('test.csv')
不要列索引
若导入时,第一行是数据,并非列索引,则可以将参数header设置为None,即不让第一行成为列索引。但系统会自动添加从0开始的列索引。
df = pd.read_csv('test.csv', header=None)
指定某行为列索引
导入数据时默认第一行为列索引,但如果数据中第一行并非列索引,而是第k行,则可以用参数header指定第k行为列索引。
# 指定test.csv中的第3行是列索引
df = pd.read_csv('test.csv', header=3)
添加列索引
若导入的数据中,并没有列索引,需要添加列索引,则用参数names具体指定列索引。
# 指定test.csv(只有两列)中的列索引为['column1','column2']
df = pd.read_csv('test.csv', names=['column1','column2'])
指定行索引
导入数据时,会自动添加从0开始的整数行索引。若需要指定数据中第K列为行索引,则要用index_col参数。
# 指定第0列是dataframe的行索引
df=pd.read_csv('test.csv',index_col=0)
# 指定列名为'column'的列是dataframe的行索引
df=pd.read_csv('test.csv',index_col='column')
读取指定的列
有时候,我们并不想把所有的列都读入,只想读取前几列,或后几列,或指定几列。这时,可以使用usecols参数。
# 读取csv数据中的第0列,第1列,第2列。
df = pd.read_csv('test.csv', usecols=[0,1,2])
指定分隔符
文本文件中,用分隔符来分隔每个值,所以读入的时候,要用参数sep告诉函数分隔符是什么。默认的分隔符是逗号。
# 指定分隔符是点号
df = pd.read_csv(filename,sep='.')
指定读入excel的sheet页
Excel文件在读入时,默认读取第一页。但如果Excel文件有多页,且不想读取第一页而是其他页,则要用参数sheetname传入读入页的名称。
# 导入test.xlsx文件的sheet1页
df = pd.read_excel('test.xlsx', sheetname='sheet1')
导出数据
写入文本文件:df.to_csv()
pandas可将dataframe存储到csv文件或txt文件中。存储的路径可以是绝对路径,也可以是先对路径。
# 将数据表df存入当前py文件所在位置下的test.csv文件中,如果没有这个文件,会自动创建
df.to_csv('test.csv')
# 将数据表df存入当前py文件所在位置下的test.txt文件中,如果没有这个文件,会自动创建
df.to_csv('test.txt')
写入excel文件:df.to_excel()
写入Excel文件时,默认会写入Excel文件中的第一页。
# 将数据表df写入test.xlsx文件中
df.to_excel('test.xlsx')
如果想要写入指定的页,则用参数sheet_name。
# 将数据表df写入test.xlsx文件中'Sheet1'页
df.to_excel('test.xlsx',sheet_name='Sheet1')
存储行索引
存储时,默认将数据表中的行索引也存储到文件中。
# test.csv的行索引将会被存储起来
df.to_csv('test.csv')
不存储行索引
导出数据时,默认是要存储行索引的。不存储行索引的话,设置index的值为False。
df.to_csv('test.csv', index = False)
不存储列索引
导出数据时,默认是要存储列索引的。不存储列索引的话,设置header的值为False。不要列索引,导出的数据就没有列名。
df.to_csv('test.csv', header = False)
pandas---文件导入和导出细节详解相关推荐
- python读取大文件csv_对python中大文件的导入与导出方法详解
1.csv文件的导入和导出 通过一个矩阵导出为csv文件,将csv文件导入为矩阵 将csv文件导入到一个矩阵中 import numpy my_matrix = numpy.loadtxt(open( ...
- mysql命令导入导出数据库_MYSQL命令行导入导出数据库详解
Mysql命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql ...
- exp/expdp 与 imp/impdp命令导入导出数据库详解
exp/expdp 与 imp/impdp命令导入导出数据库详解 一.exp命令导出数据库 如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_chi ...
- 360浏览器怎么导入html,360浏览器收藏夹导入/导出方法详解
360浏览器收藏夹导入/导出方法详解 我们在使用360浏览器的时候,如果需要将收藏夹导出备份或者将已有导出的收藏夹导入,该如何操作呢?今天一起来看看360浏览器收藏夹导入/导出方法. 360浏览器收藏 ...
- Android VCard联系人备份恢复(导入/导出)详解
原文地址为: Android VCard联系人备份恢复(导入/导出)详解 首先我们简单的看下在Android中联系人的存储结构. 工作环境:android 2.3.3 联系人的主要数据存放在raw_c ...
- oracle导入导出版本规则,Oracle不同版本间的导入导出命令详解 - wangzhuoyan的专栏 - CSDN博......
wangzhuoyan的专栏 明月松间照,清泉石上流 登录 注册 欢迎 退出 我的博客 配置 写文章 文章管理 博客首页 全站 当前博客 空间 博客 好友 相册 留言 用户操作 [发私信] [ ...
- oracle中imp命令详解,ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP命令详细对照...
ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP 命令详细对比 一.EXPDP IMPDP EXP IMP 可以实现 1.可以实现逻辑备份和逻辑恢复 2.可以在数据库用户之间 ...
- 【Matlab】Matlab导入多个.mat文件并画图的过程详解
Matlab导入多个.mat文件并画图的过程详解 0. 实验背景 1. 导入.mat文件存储 1.1 导入.mat文件及作图最简单的方式: 1.2 导入.mat文件及作图的脚本代码 2. plot画图 ...
- unity导出面板详解(pc版)
unity导出面板详解(pc版) 目录 Resolution and Presentation(分辨率和显示) Fullscreen Mode(全屏模式) 全屏模式 参数 功能 Fullscreen ...
最新文章
- JavaScriptSerializer序列化和反序列化JSON:使用自定义JavaScriptConverter
- Hello World With JBoss Modules
- 【PL/SQL】Excel批量往数据库中插入数据:
- Nginx内存管理详解
- 电脑表格日期怎么修改原有日期_为何电脑系统时间常出错或无法修改?怎么解决?...
- arduino智能浇花系统_arduino+水泵+继电器+RFID
- date.gethour_Java LocalDateTime类| 带示例的getHour()方法
- 服务器安装系统的工具,工具集#08 服务器安装系统指南
- (13)Verilog HDL变量:memory型
- Envious Exponents
- 助您写出优雅的Java代码七点建议
- python 修改用户对文件权限_用户管理相关内容的学习(查看文件权限 修改文件权限chmod 改变文件归属chown和chgrp)...
- android支付宝运动修改器,一键修改支付宝运动步数-修改支付宝运动步数工具下载不要root手机版-西西软件下载...
- excel求回归直线方程的公式_求回归直线方程的三种方法
- 单幅图像去雾java_一种基于深度学习的单幅图像去雾方法与流程
- MAC电脑实现微信多开
- itpt_TCPL 第三章:控制流
- Google Hacking 搜索教程,一步到位。
- 写一个函数,输出四次“hello world“,每次间隔3秒
- 中软python面试题_我入职中软国际经历告诉你 简历应该这样写
热门文章
- 人体工学电脑椅选购建议 | 潘魏增
- 奥塔哥大学计算机科学怎样,奥塔哥大学自然科学学院挂科率高吗?
- fastjsonfastjson 1.2.24 反序列化导致任意命令执行
- cdn转发防攻击_cdn可以防止攻击吗
- VPS云主机怎么用?
- 光学瞄准镜测距之数学原理
- 青蛙的约会解题报告(转)
- “因遭勒索软件攻击,我被认定工作失职开除,并被老东家索赔 21.5 万元”
- Java语言基础(常见对象3(数组排序(冒泡排序、选择排序、直接插入排序、快速排序、归并排序)、Arrays、基本数据类型包装类、Integer类、自动拆箱、自动装箱))
- Win7 + VirtualBox 安装 MacOS X 10.9 Mavericks 操作步骤