问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 读取CSV 文件

发布网友 发布时间:2022-09-05 03:45

我来回答

2个回答

懂视网 时间:2023-02-14 20:05

python读取csv是怎样的呢?下面就让我们一起来了解一下吧:

csv一般是指csv文件,英文全称为Comma Separated Values file,简称为csv,也就是由逗号分隔值文件,这是一种纯文本文件,它通常会使用特定的结构来排列表格数据。由于是纯文本文件,因此csv只会包含实际的文本数据,简单来说,csv能够包含可以打印的ASCII或者Unicode字符,此外,csv 文件的结构是由其名称给出的。

csv文件通常由处理大量数据的程序所创建的。csv文件是很易于以编程方式工作,基本上任何支持文本文件输入与字符串操作的语言都能够直接使用csv文件。

比如在python下读取csv一般会有几种方法,具体方法使用范例:

范例1、

使用普通方法进行读取,即使用open函数打开csv文件,再使用for循环读取内容。

具体指令为:

with open("fileName.csv") as file:

     for line in  file:

         print line

范例2、

使用CSV标准库进行读取。

具体指令为:

import csv

csv_reader = csv.reader(open("fileName.csv"))

for row in csv_reader:

    print row

范例3、

使用pandas进行读取。

具体指令为:

import pandas as pd

data = pd.read_csv("fileName.csv")

print data


data = pd.read_table("fileName.csv",sep=",")

print data

以上就是小编的分享了,希望能够帮助到大家。

热心网友 时间:2023-02-14 17:13

读取一个CSV 文件

最全的

一个简化版本

filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO)

可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中

本地文件读取实例:://localhost/path/to/table.csv

**sep **: str, default ‘,’

指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:'\r\t'

**delimiter **: str, default None

定界符,备选分隔符(如果指定该参数,则sep参数失效)

delim_whitespace : boolean, default False.

指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep='\s+'。如果这个参数设定为Ture那么delimiter 参数失效。

在新版本0.18.1支持

header : int or list of ints, default ‘infer’

指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,否则设置为None。如果明确设定header=0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉。

注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。

**names **: array-like, default None

用于结果的列名列表,如果数据文件中没有列标题行,就需要执行header=None。默认列表中不能出现重复,除非设定参数mangle_pe_cols=True。

index_col : int or sequence or False, default None

用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。

如果文件不规则,行尾有分隔符,则可以设定index_col=False 来是的pandas不适用第一列作为行索引。

usecols : array-like, default None

返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。

as_recarray : boolean, default False

不赞成使用:该参数会在未来版本移除。请使用pd.read_csv(...).to_records()替代。

返回一个Numpy的recarray来替代DataFrame。如果该参数设定为True。将会优先squeeze参数使用。并且行索引将不再可用,索引列也将被忽略。

**squeeze **: boolean, default False

如果文件值包含一列,则返回一个Series

**prefix **: str, default None

在没有列标题时,给列添加前缀。例如:添加‘X’ 成为 X0, X1, ...

**mangle_pe_cols **: boolean, default True

重复的列,将‘X’...’X’表示为‘X.0’...’X.N’。如果设定为false则会将所有重名列覆盖。

dtype : Type name or dict of column -> type, default None

每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}

**engine **: {‘c’, ‘python’}, optional

Parser engine to use. The C engine is faster while the python engine is currently more feature-complete.

使用的分析引擎。可以选择C或者是python。C引擎快但是Python引擎功能更加完备。

converters : dict, default None

列转换函数的字典。key可以是列名或者列的序号。

true_values : list, default None

Values to consider as True

false_values : list, default None

Values to consider as False

**skipinitialspace **: boolean, default False

忽略分隔符后的空白(默认为False,即不忽略).

skiprows : list-like or integer, default None

需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。

skipfooter : int, default 0

从文件尾部开始忽略。 (c引擎不支持)

skip_footer : int, default 0

不推荐使用:建议使用skipfooter ,功能一样。

nrows : int, default None

需要读取的行数(从文件头开始算起)。

na_values : scalar, str, list-like, or dict, default None

一组用于替换NA/NaN的值。如果传参,需要制定特定列的空值。默认为‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘nan’`.

**keep_default_na **: bool, default True

如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加。

**na_filter **: boolean, default True

是否检查丢失值(空字符串或者是空值)。对于大文件来说数据集中没有空值,设定na_filter=False可以提升读取速度。

verbose : boolean, default False

是否打印各种解析器的输出信息,例如:“非数值列中缺失值的数量”等。

skip_blank_lines : boolean, default True

如果为True,则跳过空行;否则记为NaN。

**parse_dates **: boolean or list of ints or names or list of lists or dict, default False

infer_datetime_format : boolean, default False

如果设定为True并且parse_dates 可用,那么pandas将尝试转换为日期类型,如果可以转换,转换方法并解析。在某些情况下会快5~10倍。

**keep_date_col **: boolean, default False

如果连接多列解析日期,则保持参与连接的列。默认为False。

date_parser : function, default None

用于解析日期的函数,默认使用dateutil.parser.parser来做转换。Pandas尝试使用三种不同的方式解析,如果遇到问题则使用下一种方式。

1.使用一个或者多个arrays(由parse_dates指定)作为参数;

2.连接指定多列字符串作为一个列作为参数;

3.每行调用一次date_parser函数来解析一个或者多个字符串(由parse_dates指定)作为参数。

**dayfirst **: boolean, default False

DD/MM格式的日期类型

**iterator **: boolean, default False

返回一个TextFileReader 对象,以便逐块处理文件。

chunksize : int, default None

文件块的大小, See IO Tools docs for more information on iterator and chunksize.

compression : {‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, default ‘infer’

直接使用磁盘上的压缩文件。如果使用infer参数,则使用 gzip, bz2, zip或者解压文件名中以‘.gz’, ‘.bz2’, ‘.zip’, or ‘xz’这些为后缀的文件,否则不解压。如果使用zip,那么ZIP包中国必须只包含一个文件。设置为None则不解压。

新版本0.18.1版本支持zip和xz解压

thousands : str, default None

千分位分割符,如“,”或者“."

decimal : str, default ‘.’

字符中的小数点 (例如:欧洲数据使用’,‘).

float_precision : string, default None

Specifies which converter the C engine should use for floating-point values. The options are None for the ordinary converter, high for the high-precision converter, and round_trip for the round-trip converter.

指定

**lineterminator **: str (length 1), default None

行分割符,只在C解析器下使用。

**quotechar **: str (length 1), optional

引号,用作标识开始和解释的字符,引号内的分割符将被忽略。

quoting : int or csv.QUOTE_* instance, default 0

控制csv中的引号常量。可选 QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2) or QUOTE_NONE (3)

doublequote : boolean, default True

双引号,当单引号已经被定义,并且quoting 参数不是QUOTE_NONE的时候,使用双引号表示引号内的元素作为一个元素使用。

escapechar : str (length 1), default None

当quoting 为QUOTE_NONE时,指定一个字符使的不受分隔符限值。

comment : str, default None

标识着多余的行不被解析。如果该字符出现在行首,这一行将被全部忽略。这个参数只能是一个字符,空行(就像skip_blank_lines=True)注释行被header和skiprows忽略一样。例如如果指定comment='#' 解析‘#empty\na,b,c\n1,2,3’ 以header=0 那么返回结果将是以’a,b,c'作为header。

encoding : str, default None

指定字符集类型,通常指定为'utf-8'. List of Python standard encodings

dialect : str or csv.Dialect instance, default None

如果没有指定特定的语言,如果sep大于一个字符则忽略。具体查看csv.Dialect 文档

tupleize_cols : boolean, default False

Leave a list of tuples on columns as is (default is to convert to a Multi Index on the columns)

error_bad_lines : boolean, default True

如果一行包含太多的列,那么默认不会返回DataFrame ,如果设置成false,那么会将改行剔除(只能在C解析器下使用)。

warn_bad_lines : boolean, default True

如果error_bad_lines =False,并且warn_bad_lines =True 那么所有的“bad lines”将会被输出(只能在C解析器下使用)。

**low_memory **: boolean, default True

分块加载到内存,再低内存消耗中解析。但是可能出现类型混淆。确保类型不被混淆需要设置为False。或者使用dtype 参数指定类型。注意使用chunksize 或者iterator 参数分块读入会将整个文件读入到一个Dataframe,而忽略类型(只能在C解析器中有效)

**buffer_lines **: int, default None

不推荐使用,这个参数将会在未来版本移除,因为他的值在解析器中不推荐使用

compact_ints : boolean, default False

不推荐使用,这个参数将会在未来版本移除

如果设置compact_ints=True ,那么任何有整数类型构成的列将被按照最小的整数类型存储,是否有符号将取决于use_unsigned 参数

use_unsigned : boolean, default False

不推荐使用:这个参数将会在未来版本移除

如果整数列被压缩(i.e. compact_ints=True),指定被压缩的列是有符号还是无符号的。

memory_map : boolean, default False

如果使用的文件在内存内,那么直接map文件使用。使用这种方式可以避免文件再次进行IO操作。

ref:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
折儿是什么意思? 什么叫饭折? 饭折是什么意思 私募股权基金6种模式 私募投资业务管理系统 火山仙泉天然矿泉水产品特点 用苏打片带吃带洗真的能生男孩吗 凡山天然苏打水怎么样 美的面包机和面要多久 美的面包机和面的时间要多长 美的面包机怎么用手动操作 关于折子戏的诗句 求天刀真武平民肉武核武两套心法。 歌曲折子戏什么年代的歌 现在真武用什么心法好 刹车片磨损到什么程度需要更换,刹车片磨损程度图解 刹车片磨损到什么程度需要更换 华硕Z170I PRO GAMING和华硕ROG STRIX Z270I Gaming有什么区别 天涯明月刀真武心法选择推荐 真武用什么心法好 黄阅的《折子戏》开头那几句是什么意思? 华为畅享6s怎样换电池 天刀 真武带什么心法好 平民点的 登不上去怎么注销? 不能登陆怎么注销? 天刀平民真武心法怎么带 抗美援朝的英雄人物故事有哪些 萌新求解,真武应该带什么心法好 华为手机充不进电是什么原因? 有<<折子戏>>的歌词吗?帮个忙吧!谢了! qq飞车所有赛车的速度? 手机版kingroot怎么删除 折子戏具体指的是什么啊? 平民真武带杀菩提,罗睺,九婴,长天行么?心法槽顺序是什么?真武带 天涯明月刀真武用什么心法好 天涯明月刀真武心法选择推荐 谁听过黄阅的《折子戏》?感觉怎么样? 天刀真武配什么心法好 "剌"组神马词? 剌字组什么词 真武用什么心法好 天涯明月刀平民真武现在要什么心法? 穿越火线恶魔剑客是不是在体验服里 有谁知道魔鬼在哪吗?我要和魔鬼交换,用我的灵魂交换一个人的痛不欲生... 十大最听话的狗排名小型犬 2022版id为什么不能自定义画布 梦见蛇想袭击我是什么意思 预兆 天涯明月刀真武心法 被一碗牛肉面毁掉的世界第一ADC——娜美Namei 孕妇40周营养食谱(4) 我想知道i5标压8300H处理器 gtx1050 4g显卡做平面设计3d图有影响么 环境设计专业用笔记本显卡1050ti可以吗 温柔寄予晚风下一句