【python】pandas库pd.read_csv操作读取分隔符csv文件和文本text文件参数整理与实例
2018-01-18 11:19
1041 查看
pandas.read_csv可以读取CSV(逗号分割)文件、文本类型的文件text、log类型到DataFrame
一、pandas.read_csv常用参数整理
也支持文件的部分导入和选择迭代,更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html
参数:
filepath_or_buffer :可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中本地文件读取。
实例1:实现图片中文件的读取,注意图片中的所有输入基于英文输入下得到,返回DataFrame文件
实例2:读取股票数据csv文件,返回DataFrame文件
sep:如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’。
delimiter :定界符,备选分隔符(如果指定该参数,则sep参数失效)
delim_whitespace : 指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep=’\s+’。如果这个参数设定为True那么delimiter 参数失效。
header :指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0【第一行数据】,否则设置为None。如果明确设定 header = 0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉。注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。
names :用于结果的列名列表,如果数据文件中没有列标题行,就需要执行 header=None。names属性在header之前运行默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True。
index_col :用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。
usecols:返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。
prefix:在没有列标题时,也就是header设定为None,给列添加前缀。例如:添加prefix= ‘X’ 使得列名称成为 X0, X1, …
dtype: 每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}
skipinitialspace:忽略分隔符后的空白(默认为False,即不忽略).
skiprows :需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。
nrows :需要读取的行数(从文件头开始算起)。
na_values :一组用于替换NA/NaN的值。如果传参,需要制定特定列的空值。默认为‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘nan’`.
keep_default_na:如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加
na_filter:是否检查丢失值(空字符串或者是空值)。对于大文件来说数据集中没有空值,设定na_filter=False可以提升读取速度。
skip_blank_lines :如果为True,则跳过空行;否则记为NaN。
一、pandas.read_csv常用参数整理
也支持文件的部分导入和选择迭代,更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html
参数:
filepath_or_buffer :可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中本地文件读取。
实例1:实现图片中文件的读取,注意图片中的所有输入基于英文输入下得到,返回DataFrame文件
In [1]: import pandas as pd #读取out.log文件,其他的参数默认 In [2]: out = pd.read_csv('out.log') In [3]: out Out[3]: book kook 0 joke2 dddd 1 fang3 NaN 2 test1 NaN 3 test2 NaN 4 test3 NaN 5 1997/10/2 NaN
实例2:读取股票数据csv文件,返回DataFrame文件
In [4]: stock = pd.read_csv('000777.csv') In [5]: stock Out[5]: date code closing high low opening pre_ 4000 closing zde \ 0 2017/1/20 '000777 21.17 21.29 20.90 20.90 20.86 0.31 1 2017/1/19 '000777 20.86 21.14 20.82 21.12 21.12 -0.26 2 2017/1/18 '000777 21.12 21.44 21.09 21.40 21.37 -0.25 3 2017/1/17 '000777 21.37 21.49 20.75 21.17 21.15 0.22 4 2017/1/16 '000777 21.15 22.50 20.28 22.50 22.53 -1.38 5 2017/1/13 '000777 22.53 22.88 22.43 22.71 22.85 -0.32 6 2017/1/12 '000777 22.85 23.53 22.75 23.41 23.51 -0.66
sep:如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’。
In [6]: a = pd.read_csv('out.log',sep = '\s') C:/Anaconda3/Scripts/ipython-script.py:1: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'. if __name__ == '__main__': #设定空值作为分隔符,','不会分割每一行的数据 In [7]: a Out[7]: book,kook 0 joke2,dddd 1 fang3 2 test1 3 test2 4 test3 5 1997/10/2 #空值的设定两种方式:' ' or '\s' In [9]: a = pd.read_csv('out.log',sep = ' ') In [10]: a Out[10]: book,kook 0 joke2,dddd 1 fang3 2 test1 3 test2 4 test3 5 1997/10/2
delimiter :定界符,备选分隔符(如果指定该参数,则sep参数失效)
In [13]: a = pd.read_csv('out.log',sep = ', ',delimiter='o') #此时sep = ','设定失效 In [14]: a Out[14]: b Unnamed: 1 k,k Unnamed: 3 k 0 j ke2,dddd NaN NaN NaN 1 fang3 NaN NaN NaN NaN 2 test1 NaN NaN NaN NaN 3 test2 NaN NaN NaN NaN 4 test3 NaN NaN NaN NaN 5 1997/10/2 NaN NaN NaN NaN
delim_whitespace : 指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep=’\s+’。如果这个参数设定为True那么delimiter 参数失效。
In [20]: a = pd.read_csv('out.log',delim_whitespace = True) In [21]: a Out[21]: book,kook 0 joke2,dddd 1 fang3 2 test1 3 test2 4 test3 5 1997/10/2
header :指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0【第一行数据】,否则设置为None。如果明确设定 header = 0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉。注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。
In [22]: a = pd.read_csv('out.log',delim_whitespace = True,header = None) In [23]: a Out[23]: 0 0 book,kook 1 joke2,dddd 2 fang3 3 test1 4 test2 5 test3 6 1997/10/2
names :用于结果的列名列表,如果数据文件中没有列标题行,就需要执行 header=None。names属性在header之前运行默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True。
In [32]: a = pd.read_csv('out.log',names='ko') In [33]: a Out[33]: k o 0 book kook 1 joke2 dddd 2 fang3 NaN 3 test1 NaN 4 test2 NaN 5 test3 NaN 6 1997/10/2 NaN
index_col :用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。
In [45]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=0) #指定第一列作为行索引 In [46]: a Out[46]: XX1 XX0 book kook joke2 dddd fang3 NaN test1 NaN test2 NaN test3 NaN 1997/10/2 NaN In [47]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=1) #指定第二列作为行索引 In [48]: a Out[48]: XX0 XX1 kook book dddd joke2 NaN fang3 NaN test1 NaN test2 NaN test3 NaN 1997/10/2
usecols:返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。
prefix:在没有列标题时,也就是header设定为None,给列添加前缀。例如:添加prefix= ‘X’ 使得列名称成为 X0, X1, …
In [38]: a = pd.read_csv('out.log',header=None,prefix='XX') In [39]: a Out[39]: XX0 XX1 0 book kook 1 joke2 dddd 2 fang3 NaN 3 test1 NaN 4 test2 NaN 5 test3 NaN 6 1997/10/2 NaN
dtype: 每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}
In [49]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=1,dtype={'XX0':str}) In [50]: a Out[50]: XX0 XX1 kook book dddd joke2 NaN fang3 NaN test1 NaN test2 NaN test3 NaN 1997/10/2 In [51]: a['XX0'].values Out[51]: array(['book', 'joke2', 'fang3', 'test1', 'test2', 'test3', '1997/10/2'], dtype=object) In [52]: a['XX0'].values[0] Out[52]: 'book' In [53]: type(a['XX0'].values[0]) Out[53]: str
skipinitialspace:忽略分隔符后的空白(默认为False,即不忽略).
skiprows :需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。
In [54]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=1,skiprows= 1) #略去第二行的数据 In [55]: a Out[55]: XX0 XX1 dddd joke2 NaN fang3 NaN test1 NaN test2 NaN test3 NaN 1997/10/2
nrows :需要读取的行数(从文件头开始算起)。
In [56]: a = pd.read_csv('out.log',header=None,prefix='XX',index_col=1,skiprows= 1,nrows=4) In [57]: a Out[57]: XX0 XX1 dddd joke2 NaN fang3 NaN test1 NaN test2
na_values :一组用于替换NA/NaN的值。如果传参,需要制定特定列的空值。默认为‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘nan’`.
keep_default_na:如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加
na_filter:是否检查丢失值(空字符串或者是空值)。对于大文件来说数据集中没有空值,设定na_filter=False可以提升读取速度。
skip_blank_lines :如果为True,则跳过空行;否则记为NaN。
相关文章推荐
- 【python】pandas库pd.read_excel操作读取excel文件参数整理与实例
- 【python】pandas库pd.to_excel操作写入excel文件参数整理与实例
- python读取csv文件并把文件放入一个list中脚本实例
- python读取串口、网络编程、文本处理与文件操作
- python读取文件操作.CSV
- python读取csv文件并把文件放入一个list中脚本实例
- 使用python读取csv文件快速插入数据库的实例
- 使用Python对Csv文件操作实例代码
- Python读取csv文件分隔符设置
- python菜鸟笔记--python读取和写入CSV文件操作
- python 读取.csv文件数据到数组(矩阵)的实例讲解
- python3读取csv和xlsx文件的实例
- Python读取mat文件,并转为csv文件的实例
- Python 3.6 读取并操作文件内容的实例
- Python文件操作,with open as追加文本内容实例
- python读取csv文件并把文件放入一个list中的实例讲解
- dos bat批处理的魅力 批处理读取文本中的每一行 操作文件 各参数详解
- python3将csv文件中的两列数据读取出来,并且按行写入txt文本之中
- python读取csv文件示例(python操作csv)
- python读取csv文件是报错_csv.Error: iterator should return strings, not bytes (did you open the file in text