对于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()文本文件的读取的更多相关文章

  1. API:详解 pandas.read_csv

    pandas.read_csv 作为常用的读取数据的常用API,使用频率非常高,但是API中可选的参数有哪些呢? pandas项目代码 答案是: .read_csv(filepath_or_buffe ...

  2. pandas read_csv读取大文件的Memory error问题

    今天在读取一个超大csv文件的时候,遇到困难:首先使用office打不开然后在python中使用基本的pandas.read_csv打开文件时:MemoryError 最后查阅read_csv文档发现 ...

  3. pandas.read_csv()函数读取文件时,关于“header=None”影响读取列数区间的右闭合总结

    对于一个没有字段名标题的数据,如data.csv 1.获取数据内容.pandas.read_csv("data.csv")默认情况下,会把数据内容的第一行默认为字段名标题. imp ...

  4. pandas.read_csv() 部分参数解释

    read_csv()所有参数 pandas.read_csv( filepath_or_buffer, sep=',', delimiter=None, header='infer', names=N ...

  5. pandas.read_csv()参数(转载)

    文章转载地址 pandas.read_csv参数整理 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/p ...

  6. pandas.read_csv to_csv参数详解

    pandas.read_csv参数整理   读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/pandas ...

  7. 被 Pandas read_csv 坑了

    被 Pandas read_csv 坑了 -- 不怕前路坎坷,只怕从一开始就走错了方向 Pandas 是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的 ...

  8. java算法面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 ;读取docx 读取doc 使用poi 相关jar包提集提供下载

    从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 1,张三,28 2,李四,35 3,张三,28 4,王五,35 5,张三,28 6,李四,35 7,赵六,28 ...

  9. pandas read_csv 读取中文列标题文件报错

    Traceback (most recent call last): File "C:/Users/arron/PycharmProjects/ML/ML/test.py", li ...

  10. pandas.read_csv参数详解

    读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html 参 ...

随机推荐

  1. 处理uniapp(同理小程序)开发中使用rich-text富文本解析,图片未自适应宽度问题(图片显示不全)

    https://www.cnblogs.com/luyaru/p/15538883.html

  2. Go 标准库之 io.Copy 和 ioutil.ReadAll

    1. go 标准库之 io.Copy 和 ioutil.ReadAll 1.1 介绍 go 标准库中通过 ioutil.ReadAll 实现数据流的读取,io.Copy 实现数据流的读取和写入. 那两 ...

  3. org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 2

    1.报错 在运行SpringBoot项目时遇到报错: 17:44:47.558 [main] ERROR org.springframework.boot.SpringApplication -- A ...

  4. 如何部署两个JMS网关,形成双机热备

    大家使用JMS的过程中,可能会留意到,不管是微服务在注册时,还是RemoteClient构造时,所指向的网关都是一个NetAddress数组,之所以网关地址是多个,而不是一个,那是因为网关是一个双击热 ...

  5. [转帖]被误解的CPU利用率、超线程、动态调频 —— CPU 性能之迷 Part 1

    https://blog.mygraphql.com/zh/notes/hw/hyper-threading/ 引 性能测试.压力测试.业务系统性能容量评估.这 3 件事,可以认为是大部分程序员/软件 ...

  6. [转帖]从v8到v9,Arm服务器发展之路

    https://zhuanlan.zhihu.com/p/615344155   01 ARM:3A大作 将 CPU 的设计与制造相分离的代工模式,给 AMD 提供了高度的灵活性.第二.三代 EPYC ...

  7. Oracle 查询用户下表名,表列数,表行数,表大小的SQL

    最近想分析下数据库的信息, 然后写了这个SQL. 比较lowB一些. 因为Oracle的 deferred_segment_creation 参数的影响. 很多表如果是0行,那么是不会创建extent ...

  8. locust+python性能测试库

    一.简介 locust官网介绍:Locust 是一个用于 HTTP 和其他协议的开源性能/负载测试工具.其对开发人员友好的方法允许您在常规 Python 代码中定义测试.Locust测试可以从命令行运 ...

  9. 图片三像素问题如何解决css

    一.提出问题 在浏览器中,图片有一个下间隙问题,有人也称之为图片3像素BUG 1.这并不是什么浏览器bug,而只是英文字母书写时有个基线的问题,基线决定了图片的对其方式.这才是造成浏览器中图片下间隙的 ...

  10. 微信小程序-页面生命周期

    官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html