Pandas—read_csv()/read_table()文本文件的读取
对于CSV及txt后缀的文本文件,分别使用pandas模块中的read_csv函数和read_table函数
|
文件类型 |
函数名称 |
|
CSV |
read_csv() |
|
txt |
read_table() |
1. read_table函数的参数
read_table(filepath_or_buffer , sep='\t' , header='infer' ,
names=None , index _col=None , usecols=None , dtype=None ,
converters=None , skiprows=None , skipfooter=None , nrows=None ,
na_values=None , skip_blank_lines=True , parse_dates=False ,
thousands= None , comment=None , encoding=None)
2. 参数解释
|
序号 |
参数名称 |
描述 |
|
1 |
filepath_or_buffer |
文件路径、指定存储数据的URL或者文件型对象 |
|
2 |
sep |
指定原数据集中分割每行字段的分隔符,默认为tab制表符 |
|
3 |
header |
是否将原数据集中的第一行作为表头,默认是0,将第一行作为变量名称;如果原始数据中没有表头,该参数需要设置成None。 |
|
4 |
names |
如果原数据集中没有列名,这个可以用来给数据添加列名。和header=None一起使用。 |
|
5 |
index _col |
指定数据集中的某些列(字段)作为数据的行索引(标签) |
|
6 |
usecols |
指定要读取哪些列(字段)的数据。 |
|
7 |
dtype |
为数据集中的每列设置不同的数据类型 |
|
8 |
converters |
通过字典格式,为数据集中的某些列(字段)设置转换函数 |
|
9 |
skiprows |
指定需要跳过原数据集的起始行数 |
|
10 |
skipfooter |
指定需要跳过原数据集的末尾行数 |
|
11 |
nrows |
指定从文件开头处读入的行数 |
|
12 |
na_values |
指定原数据集中的哪些特征值为缺失值(默认将两个分隔符之间的空值视为缺失值) |
|
13 |
skip_blank_lines |
跳过空白行,默认为True |
|
14 |
parse_dates |
尝试将数据解析为datetime,默认为False。参数值为True时,则尝试解析数据框的行索引;参数为列表,则尝试解析对应的日期列;如果参数为嵌套列表,则将某些列合并为日期列;如果参数为字典,则解析对应的列(即字典中的值),并生成新的变量名(即字典中的键) |
|
15 |
thousands |
指定原数据集中的千分位符 ,例如','或'.' |
|
16 |
comment |
指定注释符,在读取数据时,如果碰到行首指定的注释符,则跳过该行 |
|
17 |
encoding |
为防止中文乱码,可以借助该参数解决(通常设置为“utf-8”或者“gbk”) |
|
18 |
chunksize |
用于迭代的块大小 |
|
19 |
date_parser |
用于解析日期的函数 |
read_csv函数的参数与之完全一致,有一个不同点:sep参数值的默认值
|
文件类型 |
函数名称 |
默认分隔符 |
|
CSV |
read_csv() |
参数的默认值为英文状态下的逗号“,” |
|
txt |
read_table() |
参数的默认值为tab制表符 |
3 应用案例
有一个txt文件,内容如下:
2021年寒假留校过年的同学,带“!”的同学因临时变更选择回家
如有变化,及时报送
0014,多隆,男,河北石家庄人
0015,陈近南,男,福建漳州人
! 0016,韦小宝,男,江苏扬州人
0017,龙儿,女,神龙岛人
!0018,鳌拜,内蒙古呼和浩特人
数据来源于鹿鼎大学人事部
抄送给康熙
要求只读取编号、姓名、性别、籍贯等内容,且回家的不用读,实现如下效果:
|
id |
name |
gender |
native place |
|
|
0 |
14 |
多隆 |
男 |
河北石家庄人 |
|
1 |
15 |
陈近南 |
男 |
福建漳州人 |
|
2 |
17 |
龙儿 |
女 |
神龙岛人 |
代码
import pandas as pd
#用read_table函数读取文本文件的数据
data=pd.read_table(r'D:Desktop\新建文本文档.txt', #文件路径,前面的filepath_or_buffer符可以省略掉
sep=',', #指定数据中变量之间的分隔符,注意这里是中文的逗号 ,
header=None , #不需要将原来的数据中的第一行读作表头
names=['id','name','gender','native place'] , #重新为各列起变量名称
converters={'id':str} , #将ID转换为字符串,以免开头的00消失
skiprows=2 , #跳过开头的两行数据
skipfooter=2, #跳过末尾的两行数据
comment='!' #不读取“!”开头的数据行
)
Pandas—read_csv()/read_table()文本文件的读取的更多相关文章
- API:详解 pandas.read_csv
pandas.read_csv 作为常用的读取数据的常用API,使用频率非常高,但是API中可选的参数有哪些呢? pandas项目代码 答案是: .read_csv(filepath_or_buffe ...
- pandas read_csv读取大文件的Memory error问题
今天在读取一个超大csv文件的时候,遇到困难:首先使用office打不开然后在python中使用基本的pandas.read_csv打开文件时:MemoryError 最后查阅read_csv文档发现 ...
- pandas.read_csv()函数读取文件时,关于“header=None”影响读取列数区间的右闭合总结
对于一个没有字段名标题的数据,如data.csv 1.获取数据内容.pandas.read_csv("data.csv")默认情况下,会把数据内容的第一行默认为字段名标题. imp ...
- pandas.read_csv() 部分参数解释
read_csv()所有参数 pandas.read_csv( filepath_or_buffer, sep=',', delimiter=None, header='infer', names=N ...
- pandas.read_csv()参数(转载)
文章转载地址 pandas.read_csv参数整理 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/p ...
- pandas.read_csv to_csv参数详解
pandas.read_csv参数整理 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/pandas ...
- 被 Pandas read_csv 坑了
被 Pandas read_csv 坑了 -- 不怕前路坎坷,只怕从一开始就走错了方向 Pandas 是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的 ...
- java算法面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 ;读取docx 读取doc 使用poi 相关jar包提集提供下载
从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 1,张三,28 2,李四,35 3,张三,28 4,王五,35 5,张三,28 6,李四,35 7,赵六,28 ...
- pandas read_csv 读取中文列标题文件报错
Traceback (most recent call last): File "C:/Users/arron/PycharmProjects/ML/ML/test.py", li ...
- pandas.read_csv参数详解
读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html 参 ...
随机推荐
- VScode快捷键和设置
https://blog.csdn.net/qq_35206261/article/details/85207428
- docker 资源限制之 cgroup
1. Liunx cgroup 使用 namespace 隔离运行环境,使得进程像在独立环境中运行一样.然而,仅有隔离环境还不够,还得限制被 namespace 隔离的资源.否则,namespace ...
- python 基础 | 虚拟环境搭建全流程
首先,建立 python 虚拟环境 test_env: python3 -m venv test_env # 激活虚拟环境 source ./test_env/bin/activate # linux ...
- Go-数组-实现队列
package main import ( "errors" "fmt" ) // 队列 // 特征: // 1. 按照元素的添加顺序排序,并且容量固定 // ...
- [转帖]能使 Oracle 索引失效的六大限制条件
Oracle 索引的目标是避免全表扫描,提高查询效率,但有些时候却适得其反. 例如一张表中有上百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这可能是 oracle 索引失效造成的.or ...
- [转帖]如何通过dba_hist_active_sess_history分析数据库历史性能问题
https://www.cnblogs.com/DataArt/p/10018932.html 在数据库运行的过程中,我们有时会碰到数据库hung住的问题,在这个时候很多人会选择尽快让它恢复正常而不是 ...
- [转帖]043、TiDB特性_缓存表和分区表
针对于优化器在索引存在时依然使⽤全表扫描的情况下,使⽤缓存表和分区表是提升查询性能的有效⼿段. 缓存表 缓存表是将表的内容完全缓存到 TiDB Server 的内存中 表的数据量不⼤,⼏乎不更改 读取 ...
- [转帖]k8s之PV、PVC、StorageClass详解
https://zhuanlan.zhihu.com/p/128552232 导读 上一篇写了共享存储的概述以及一个简单的案例演示.这一篇就写一下PV和PVC. PV是对底层网络共享存储的抽象,将共享 ...
- [转帖]Nginx Ingress 高并发实践
概述 Nginx Ingress Controller 基于 Nginx 实现了 Kubernetes Ingress API,Nginx 是公认的高性能网关,但如果不对其进行一些参数调优,就不能充分 ...
- kubeadm 搭建 k8s 1.21 三主两从的简单学习
kubeadm 搭建高可用k8s1.21集群的方法 本文学习自: https://www.cnblogs.com/wjhlinux/p/14422021.html 第0部分: 整理的部分脚本 导出所有 ...