Python疑难杂症(20)---介绍Python的pandas模块中将数据导入内存和导出数据的方法,以及一些参数的用法。

Python的pandas模块中数据框这种数据类型,可以通过文件导入函数,将磁盘上的csv、execl等类型的文件装入内存,并生成数据框的格式,以方便后续使用pandas的专有方法进行处理。

6、DataFrame数据输导入导出方法

Pandas常用的读取数据的方法函数:
  • pd.read_csv(filename)从csv文件导入数据,默认分隔符为“,"
  • pd.read_table(filename)从文本文件导入数据,默认分隔符为制表符
  • pd.read_excel(filename)从Excel文件导入数据
  • pd.read_sql(query,connection_object)从SQL表/库中导入数据
  • pd.read_json(json_string)从json文件导入数据
  • pd.read_html(url)解析url、字符串或者HTML文件,提取数据表格
  • pd.DataFrame(dict)从字典对象中读入数据

在读取的函数中都有很多参数,如函数pd.read_csv的格式如下:

pd.read_csv(filepath_or_buffer, sep=',', header='infer', names=None, index_col=None, usecols=None,  dtype=None, skiprows=None, nrows=None, na_values=None,  keep_default_na=True, na_filter=True, verbose=False,  skip_blank_lines=True, parse_dates=False,  infer_datetime_format=False, date_parser=None,   dayfirst=False, cache_dates=True, iterator=False,   chunksize=None, compression='infer', thousands=None,    decimal='.', lineterminator=None, quotechar='"',    quoting=0, doublequote=True, escapechar=None,     comment=None, encoding=None, dialect=None,      error_bad_lines=True, warn_bad_lines=True,      delim_whitespace=False, low_memory=True,      memory_map=False, float_precision=None)

这个函数参数太多了,下面将常用的或者比较重要的参数来说明:filepath_or_buffer: 这是要读取的CSV文件的路径或者类似文件的对象,可以是本地文件,也可以是网络链接

sep: 这是指定CSV文件中每一列数据之间的分隔符,默认是逗号,但也可以是其他符号,比如制表符' '。

header: 这是指定CSV文件中哪一行作为列名,默认是infer,表示自动推断,如果没有列名,可以设置为None。

names: 这是指定列名的列表,如果header为None,那么可以用这个参数来给每一列命名。

index_col: 这是指定哪一列或者哪几列作为DataFrame的索引,默认是None,表示不使用任何列作为索引。usecols: 这是指定要读取哪些列的数据,默认是None,表示读取所有列,可以用列名或者位置来指定。

dtype: 这是指定每一列数据的类型,默认是None,表示自动推断,可以用字典来映射每一列的类型,比如{'a': int, 'b': float}。

skiprows: 这是指定要跳过哪些行不读取,默认是None,表示不跳过任何行,可以用整数或者列表来指定。

nrows: 这是指定要读取多少行的数据,默认是None,表示读取所有行,可以用整数来指定。

na_values: 这是指定哪些值要被视为缺失值,默认是None,表示只有空值被视为缺失值,可以用字符串或者列表来指定。

keep_default_na: 这是指定是否保留默认的缺失值,默认是True,表示保留,如果设置为False,表示只有na_values中指定的值才被视为缺失值。

na_filter: 这是指定是否过滤掉缺失值,默认是True,表示过滤掉,如果设置为False,表示不过滤掉。

verbose: 这是指定是否显示详细的信息,默认是False,表示不显示,如果设置为True,表示显示。

skip_blank_lines: 这是指定是否跳过空白行,默认是True,表示跳过,如果设置为False,表示不跳过。

parse_dates: 这是指定是否解析日期格式的数据,默认是False,表示不解析,如果设置为True或者列表或者字典,表示解析。

infer_datetime_format: 这是指定是否推断日期格式的数据,默认是False,表示不推断,如果设置为True,表示推断。

date_parser: 这是指定用来解析日期格式的数据的函数,默认是None,表示用内置的解析器,可以用自定义的函数来指定。

dayfirst: 这是指定日期格式中是否先写日再写月,默认是False,表示不是,如果设置为True,表示是。

cache_dates: 这是指定是否缓存日期格式的数据,默认是True,表示缓存,如果设置为False,表示不缓存。

iterator: 这是指定是否返回一个可迭代的对象,默认是False,表示不返回,如果设置为True,表示返回。

chunksize: 这是指定每次迭代返回的行数,默认是None,表示不迭代,如果设置为整数,表示每次迭代返回的行数。

compression: 这是指定CSV文件是否压缩,默认是infer,表示自动推断,可以用字符串来指定压缩方式,比如gzip或者zip。

thousands: 这是指定千位分隔符,默认是None,表示没有千位分隔符,可以用字符串来指定千位分隔符,比如','或者'.'。

decimal: 这是指定小数点符号,默认是'.',表示用点作为小数点,可以用字符串来指定小数点符号,比如','或者'.'。

lineterminator: 这是指定行终止符,默认是None,表示用操作系统默认的行终止符,可以用字符串来指定行终止符,比如' '或者' '。

quotechar: 这是指定引号字符,默认是'"',表示用双引号作为引号字符,可以用字符串来指定引号字符,比如'"'或者"'"。

quoting: 这是指定引号规则,默认是0,表示最小化引号使用,可以用整数或者csv模块中的常量来指定引号规则,比如csv.QUOTE_MINIMAL或者csv.QUOTE_ALL。

doublequote: 这是指定是否双重引号内部的引号字符,默认是True,表示双重引号内部的引号字符,如果设置为False,表示用escapechar来转义内部的引号字符。

escapechar: 这是指定转义字符,默认是None,表示没有转义字符,可以用字符串来指定转义字符,比如''或者'/'。

comment: 这是指定注释符号,默认是None,表示没有注释符号,可以用字符串来指定注释符号,比如'#'或者';'。

encoding: 这是指定CSV文件的编码方式,默认是None,表示用系统默认的编码方式,可以用字符串来指定编码方式,比如'utf-8'或者'gbk'。

dialect: 这是指定CSV文件的方言,默认是None,表示用标准的CSV方言,可以用字符串或者csv模块中的Dialect类来指定方言。

error_bad_lines: 这是指定是否报错并跳过错误格式的行,默认是True,表示报错并跳过错误格式的行。如果设置为False, 表示不报错并忽略错误格式的行。

warn_bad_lines: 这是指定是否显示错误格式的行的警告信息,默认是True, 表示显示错误格式的行的警告信息。如果设置为False, 表示不显示错误格式的行的警告信息。

delim_whitespace: 这是指定是否用空白字符作为分隔符,默认是False, 表示不用空白字符作为分隔符。如果设置为True, 表示用空白字符作为分隔符,并且忽略sep参数。

low_memory: 这是指定是否在内存中分块读取数据,默认是True, 表示在内存中分块读取数据。如果设置为False, 表示一次性读取整个文件到内存中。

memory_map: 这是指定是否使用内存映射文件来读取数据,默认是False。

其实在实际使用中大部分参数使用缺省值即可。常用的参数包括读取的文件、分隔符、文件编码(Python 中用得比较多的两种编码格式是UTF-8和gbk,默认编码格式是UTF-8)、以及行数的指定等。

读入csv文件

import os

mypath=r"D:\_____newyear_willdo\py\gp"

df=pd.read_csv(os.path.join(mypath+'\\'+'Wly_Data.csv'),encoding='utf-8') ## 数据导出为csv文件

df

输出:

用skiprows参数来跳过一些行不读取,比如第二行到第五行

df = pd.read_csv('Wly_Data.csv', sep=';', header=0, skiprows=[1, 2, 3, 4])

用nrows参数来限制读取的行数,比如只读取前100行

df = pd.read_csv('Wly_Data.csv', sep=';', header=0, nrows=100)

举例:使用read_excel()方法导入文件

    import pandas as pd

pd.read_excel('stu_data.xlsx')

导入.xlsx文件时,指定导入哪个Sheet

1. pd.read_excel('stu_data.xlsx',sheet_name='Target')

2. pd.read_excel('stu_data.xlsx',sheet_name=0)

导入.xlsx文件时,通过index_col指定行索引

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

导入.xlsx文件时,通过header指定列索引

pd.read_excel('stu_data.xlsx',sheet_name=0,header=1)

有时候本地文件的列数太多,而我们又不需要那么多列时,我们就 可以通过设置usecols参数来指定要导入的列。

pd.read_excel('stu_data.xlsx',usecols=[1,2,3])

常用的写入文件的方法函数:
  • pd.to_csv(filename) 导出数据至csv文件
  • pd.to_excel(filename) 导出数据至excel文件
  • pd.to_sql(table_name,connection_object) 导出数据至SQL表
  • pd.to_json(json_string) 导出数据为json格式
  • pd.to_html(url) 导出数据为html文件
  • pd.to_clipboard(filename) 导出数据到剪切板
  • 第一个参数为写入文件路径和文件名,seq参数用于设置写入文件的分隔符,header参数表示写入文件是否写入标题行,默认值为True,index参数表示是否写入行索引,默认值为True
函数to_excel参数:

DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)  

  • excel_writer:文件路径或现有的ExcelWriter。
  • sheet_name:指的是包含DataFrame的工作表的名称。
  • na_repr:缺失数据的表示。
  • float_format:这是一个可选参数,用于格式化浮点数的字符串。
  • columns:指定要写入的列。
  • header:写出列名。如果给定字符串的列表,则假定它是列名的别名。
  • index:写入索引。
  • index_label:指定索引列的列标签。如果未指定,并且标题和索引为True,则使用索引名称。如果DataFrame使用MultiIndex,则应给出一个序列。
  • startrow:默认值为0。它指的是要将DataFrame倾倒到的左上角单元格行。
  • startcol:默认值为0。它指的是要将DataFrame倾倒到的左上角单元格列。
  • engine:这是一个可选参数,用于指定要使用的引擎,可以是openpyxl或xlsxwriter。
  • merge_cells:它返回布尔值,其默认值为True。将MultiIndex和分层行写为合并单元格。
  • encoding:这是一个可选参数,用于对生成的excel文件进行编码。仅对xlwt是必需的。
  • inf_rep:这也是一个可选参数,默认值为inf。通常表示无穷大。
  • verbose:它返回一个布尔值。默认值为True。用于在错误日志中显示更多信息。
  • freeze_panes:这也是一个可选参数,用于指定要冻结的基于一的最底行和最右列。

其实在这里面常用的参数就几个,其他可以使用缺省值

df.to_csv(

filepath_or_buffer :要保存的文件路径

      sep =:分隔符

columns :需要导出的变量列表

header = True :指定导出数据的新变量名,可直接  提供 list

      index = True :是否导出索引

      mode = 'w' : Python 写模式,读写方式:r,r+ ,   w , w+ , a , a+   

 encoding = 'utf-8' :默认.     导出的文件编码格式

      )

举例:输出文件

wly_df为五粮液的股票价格和涨跌情况。

wly_df.to_excel('out_wly.xlsx', index=False)

本章节主要介绍了多种数据文件装入内容成为数据框dataFrame的方法,供查询参考,重点介绍了读入csv文件的函数pd.read_csv()的使用和各种参数的含义,以及输出函数pd.to_excel()的使用方法和参数含义,同时通过五粮液股票信息数据作为例子,导入和导出,更便于理解。

码字不易,欢迎关注、点赞和收藏。如果文章能给你带来知识很力量,欢迎留言和讨论。你的支持是我前进的动力。

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

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

相关文章

安装ps提示MSVCP140.dll丢失怎么办,推荐几种有效的解决方法

在成功完成Adobe Photoshop(简称PS)软件的安装过程之后,当用户试图启动并运行该程序时,系统却弹出了一个令人困扰的错误提示信息,明确指出:“无法找到MSVCP140.dll”这一关键文件。这意味着尽管PS软件已经成…

redmibook 14 2020 安装 ubuntu

1. 参考博客 # Ubuntu20.10系统安装 -- 小米redmibook pro14 https://zhuanlan.zhihu.com/p/616543561# ubuntu18.04 wifi 问题 https://blog.csdn.net/u012748494/article/details/105421656/# 笔记本电脑安装了Ubuntu系统设置关盖/合盖不挂起/不睡眠 https://blog.csdn.net/…

权威Scrum敏捷开发企业级实训/敏捷开发培训课程

课程简介 Scrum是目前运用最为广泛的敏捷开发方法,是一个轻量级的项目管理和产品研发管理框架。 这是一个两天的实训课程,面向研发管理者、项目经理、产品经理、研发团队等,旨在帮助学员全面系统地学习Scrum和敏捷开发, 帮助企业快速启动敏…

【机器学习】科学库使用第5篇:Matplotlib,学习目标【附代码文档】

机器学习(科学计算库)完整教程(附代码资料)主要内容讲述:机器学习(常用科学计算库的使用)基础定位、目标,机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小…

【网络设备巡检命令】--思科、华为、H3C、锐捷

【网络设备巡检命令】--思科、华为、H3C、锐捷 一、思科二、华为三、H3C四、锐捷 💖The Begin💖点点关注,收藏不迷路💖 一、思科 1、查看系统信息: show version2、查看时间: show clock3、查看序列号&a…

Nginx内存池相关源码剖析(三)小块内存分配逻辑

在Nginx中,小块内存通常指的是那些大小相对较小、分配和释放频率较高的内存块。这些内存块由于数量众多、管理复杂,因此需要使用一种高效的内存管理机制来减少内存管理的开销和内存碎片的产生。 Nginx内存池通过一种预分配和复用的方式来管理小块内存。当…

觉飞、希亦、Daily neaty内衣洗衣机好用吗?爆款产品性能全面测评!

近几年来小家电产品中,内衣洗衣机的讨论热度无疑是最大的,功能多、操作方便,用内衣洗衣机来清洗内衣裤会更加卫生和安全,能满足了消费者的多种需求。不过尽管市面上的内衣洗衣机品牌很多、挑选空间大,也不是所有产品都…

RT-thread-线程间通讯3-事件集

事件集 事件集也是线程间同步的机制之一,一个事件集可以包含多个事件,利用事件集可以完成一对多,多对多的线程间同步。 一个线程和多个事件的关系可设置为: 其中任意一个事件唤醒 线程,或几个事件都到达后唤醒线程,多个事件集合可以用一个32bit无符号整型变量来表示,…

4.8-4.12算法刷题笔记

刷题 堆1. 堆排序2. 模拟堆 哈希表3. 模拟散列表4. 字符串哈希 DFS5. 排列数字6. n-皇后问题 2. BFS(队列)7. 字母迷宫8. 滑动谜题 3. 树与图的dfs9. 树的重心 4. 树与图的bfs(最短路)10. 图中点的层次( 无权最短路 ) 5. 拓扑排序11. 课程表 6. 朴素dijk…

docker (CentOS,ubuntu)安装及常用命令

Docker和虚拟机一样,都拥有环境隔离的能力,但它比虚拟机更加轻量级,可以使资源更大化地得到应用 Client(Docker客户端):是Docker的用户界面,可以接受用户命令(docker build&#xff…

记录Python的pandas库详解

如何生成一个pd import pandas as pd df pd.DataFrame([[1,2,3],[4,5,6]],index[A,B],columns[C1,C2,C3])df ---------------------------------------------------------------------------C1 C2 C3 A 1 2 3 B 4 5 6df.T -------------------------------------------------…

爬虫 新闻网站 以湖南法治报为例(含详细注释) V4.0 升级 自定义可任意个关键词查询、时间段、粗略判断新闻是否和优化营商环境相关,避免自己再一个个判断

目标网站:湖南法治报 爬取目的:为了获取某一地区更全面的在湖南法治报的已发布的和优化营商环境相关的宣传新闻稿,同时也让自己的工作更便捷 环境:Pycharm2021,Python3.10, 安装的包:requests&a…

element-ui container 组件源码分享

今日简单分享 container 组件的源码实现,从以下两个方面来讲解: 1、container 组件的页面结构 2、container 组件的属性 一、container 组件的页面结构 二、container 组件的属性 1、container 部分的 direction 属性,子元素的排列方向&am…

Nacos2.3.0安装部署

一,准备安装包 github下载点 二,在/usr/local/目录下创建一个文件夹用于上传和解压Nacos cd /usr/local/ #上传Nacos文件 #解压之前cd进安装包根目录 cd /usr/local/ #这边选择的Nacos版本为2.3.0 tar -zxxvf nacos-server-2.3.0.tar.gz #把该文件移动…

基于SpringBoot的“商务安全邮箱”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“商务安全邮箱”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构 收件箱效果图 草稿箱效果图 已发送…

【数据结构】习题之消失的数字和轮转数组

👑个人主页:啊Q闻 🎇收录专栏:《数据结构》 🎉前路漫漫亦灿灿 前言 消失的数字这道题目我会和大家分享三种思路。 还有一道题目是轮转数组,,也会分享三种思路,大…

常见的垃圾回收器(下)

文章目录 G1ShenandoahZGC 常见垃圾回收期(上) G1 参数1: -XX:UseG1GC 打开G1的开关,JDK9之后默认不需要打开 参数2:-XX:MaxGCPauseMillis毫秒值 最大暂停的时间 回收年代和算法 ● 年轻代老年代 ● 复制算法 优点…

Methoxy PEG Propionic acid具有良好的亲水性和分子量可控性

【试剂详情】 英文名称 mPEG-PA,mPEG-Propionic acid, Methoxy PEG PA, Methoxy PEG Propionic acid 中文名称 聚乙二醇单甲醚丙酸, 甲氧基-聚乙二醇-丙酸 外观性状 由分子量决定,固体或者液体 分子量 400&…

如何提高直线模组的技术水平?

在工业制造业中,不管我们使用任何机械产品,都有一个共同的出发点,就是能用先进的技术突破其产品的性能及使用性。那么直线模组究竟是用什么技术突破其产品的使用性的呢? 1、优化机械设计:设计过程中应充分考虑模组的结…

JetBrains2024来袭

JetBrains2024来袭,激活包含在内的编程IDE,其中AppCode已下架,Aqua,RustRover不支持本地激活需要关联帐号。 Tap:激活稳定可靠,支持Windows,macOS,Linux客户端。