解析选项
目录:
第1部分:csv文本文件读写
pandas 读csv文件read_csv(1.文本读写概要)https://mp.csdn.net/postedit/85289371
pandas 读csv文件read_csv(2.read_csv参数介绍)https://mp.csdn.net/postedit/85289928
pandas 读csv文件read_csv(3.dtypes指定列数据类型)https://mp.csdn.net/postedit/85290575
pandas 读csv文件read_csv(4.to_csv文本数据写)https://mp.csdn.net/postedit/85290962
pandas 读csv文件read_csv(5.文本数据读写实例)https://mp.csdn.net/postedit/85291123
pandas 读csv文件read_csv(6.命名和使用列)https://mp.csdn.net/postedit/85291430
pandas 读csv文件read_csv(7.索引)https://mp.csdn.net/postedit/85291658
pandas 读csv文件read_csv(8.方言和分隔符)https://mp.csdn.net/postedit/85291994
pandas 读csv文件read_csv(9.浮点转换和NA值)https://mp.csdn.net/postedit/85292391
pandas 读csv文件read_csv(10.注释和空行)https://mp.csdn.net/postedit/85292609
pandas 读csv文件read_csv(11.日期时间处理) https://mp.csdn.net/postedit/85292925
pandas 读csv文件read_csv(12.迭代和块)https://mp.csdn.net/postedit/85293639
pandas 读csv文件read_csv(13.read_fwf读固定宽度数据)https://mp.csdn.net/postedit/85294010
第2部分:
pandas hdf文件读写简要https://mp.csdn.net/postedit/85294299
pandas excel读写简要https://mp.csdn.net/postedit/85294545
第3部分:
python中csv模块用法tcy https://mp.csdn.net/postedit/85228189
pandas读csv文件read_csv错误解决办法7种https://mp.csdn.net/postedit/85228808
pandas to_string用法https://mp.csdn.net/postedit/85294935
read _csv参数 | ||
No | 函数 | 说明 |
解析选项-基础 | ||
1 | filepath_or_buffer str | 路径:文件系统位置URL (http,ftp,s3);文件;StringIO |
2 | sep="," str | 分割符:如为None则C引擎不能自动检测分隔符,Python可以 |
3 | delimiter ="," str | 分割符:同上;超过1个字符如'\s+'被解释为正则表达式,强制使用Python解析引擎;易忽略数据 |
pd.read_csv("data.txt",sep="\s+")#使用正则表达式进行分割 | ||
4 | delim_whitespace=Falsle | 是否用空格作为分隔符等价于sep=’\s+’如调用该参数delimite不起作用;支持Python解析器 |
5 | lineterminator=None char | 行分割符,只在C解析器下使用. |
列和索引位置和名称 | ||
1 | header ='infer' int,[int] | 第1行数据用作列名.默认跳过注释空行;如[0,1]用于多索引; |
dt.to_csv('Result.csv',header=None) #文件无标题(即列名) | ||
2 | names =None array | header= None时设置列名 pd.read_csv("data.txt",header=["a","b"]) |
3 | index_col =None int序列false | 用作行索引的列编号或列名.可为名称/数字或名称/数字列表(层次化索引) 注1 |
pd.read_csv("data.txt",names=["a","b","c","d","name"],index_col="name") | ||
pd.read_csv("data.txt",index_col=["key1","key2"])#多索引 | ||
4 | usecols=None [int or str]或函数 | 返回数据列的子集,如 [0, 1] or ['foo',bar']选取某几列数据读出;忽略顺序 |
pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']]['bar', 'foo'] | ||
5 | cols=True | 是否保留某列数据 dt.to_csv('Result.csv',columns=['name']) #保存索引列和name列 |
6 | squeeze=False | 如为True数据经解析后仅含一列,则返回Series |
7 | prefix=None str | 无标题header =None添加列号前缀,例如X0,X1的“X” |
8 | mangle_dupe_cols=True | 重复列被指定为'X','X.1'…'X.N'.为False列中存在重复名称时导致数据被覆盖. |
一般解析配置 | ||
1 | dtype=None | {‘a’: np.float64, ‘b’: np.int32} 指定数据类型 |
2 | engine=None | 读取引擎{‘c’, ‘python’} pd.read_csv(r'file_data4.csv',sep=',|\"',engine='python') |
3 | converters =None | 由列号/列名跟函数之间映射关系组成的字典.如,{"age,f}会对列索引为age列的所有值应用函数f. |
4 | true_values=None list | 把列表中的值都视为真即True. true_values=['Yes'], |
5 | false_values =None list | 把列表中的值都视为假即False. false_values=['No'] |
6 | skipinitialspace=False | 分隔符后跳过空格 |
7 | skiprows =None list or int | 在文件开头跳过(0索引)或要跳过的行数(int行号) |
8 | skip_footer =0 int | 要跳过的文件底部的行数(不支持engine ='c') |
9 | nrows =None int | 需要读取的行数(从文件开始处算起)pd.read_csv(r'file_data.csv', nrows=2)#读取2行数据 |
10 | low_memory =True 注2 | 以块的形式处理文件,使用较少内存量可能导致数据类型混乱. |
11 | memory_map=False | 提供文件则将文件映射到内存,直接从那里访问数据.可提高性能 |
NA和丢失数据处理 | ||
1 | na_values=None标量str,listdict | 将缺失值用NaN替代;注3 |
- | pd.read_csv("data.txt",na_values=["str1","str2"]) #将所有str1,str2都替换为缺失值 | |
- | pd.read_csv("data.txt",na_values={"name":["str1","str2"]})#只将name列的str1和str2替换为NaN | |
2 | keep_default_na=True | na_values指定,keep_default_na=True,na_values 附加到默认用于解析NaN值 |
na_values=None,keep_default_na=True,使用默认NaN值进行解析 | ||
na_values指定,keep_default_na=False,仅指定的NaN值na_values用于解析 | ||
na_values=None,keep_default_na=false,不会将任何字符串解析为NaN | ||
3 | na_filter=True | 检测缺失值标记(空字符串和na_values).无NA数据中na_filter=False提高读取效率 |
4 | na_rep | 将缺失值表示为其他字符 df.to_csv(sys.stdout, na_rep='NULL') |
5 | verbose =False | 打印各种解析器输出信息;指示放置在非数字列中的NA值的数量 |
6 | skip_blank_lines=True | 如果True,跳过空行而不是解释为NaN值. |
7 | index=True | 是否保留行索引 dt.to_csv('Result1.csv',index=False) #不保存行索引 |
迭代 | ||
1 | iterator =False | 返回一个TextParser以便逐块读取文件或获取块 get_chunk() |
2 | chunksize =None int | 文件块的大小(用于迭代)iter = pd.read_csv (r'data.csv', chunksize=1000)#文件块1000行 |
要确保没有混合类型设置为False,或者使用dtype参数指定类型 | ||
引用,压缩和文件格式 | ||
1 | compression='infer' 注5 | {'infer', 'gzip', 'bz2', 'zip', 'xz', None}直接用压缩文件.设置None为不进行解压缩. |
2 | thousands=None str | 千分位分隔符,如","或".";正确解析带分割符的数据 |
3 | decimal str | 小数点符号,默认‘.’ |
4 | float_precision=None str | 指定C引擎应该将哪个转换器用于浮点值.None普通,high高精度转换器和round_trip往返转换器 |
5 | quotechar char | 用于表示引用项目的开头和结尾的字符.引用的项目可以包括分隔符,它将被忽略. |
6 | quoting=0 int或csv.QUOTE_*instance | 控制字段引用每个csv.QUOTE_*常量行为. |
使用 QUOTE_MINIMAL(0),QUOTE_ALL(1),QUOTE_NONNUMERIC(2)或 QUOTE_NONE(3)中的一个. | ||
7 | doublequote=True | quotechar指定quoting未指定QUOTE_NONE,是否将字段内的两个连续quotechar元素 解释为单个元素 |
8 | escapechar =None char | 引用时用于转义分隔符的单字符字符串QUOTE_NONE. |
9 | comment =None str | 注释;行开头找到忽略该行.header会忽略注释行但不会被跳过. |
如comment='#';header = 0解析'#empty \ na,b,c \ n1,2,3' 将导致'a,b,c'被视为标题. | ||
10 | encoding =None str | 编码以在读/写时用于UTF(例如'utf-8') |
11 | dialect=None str或csv.Dialectinstance | 如提供覆盖以下参数delimiter, doublequote, escapechar, skipinitialspace, quotechar, and quoting. |
12 | float_format=None | float数格式 dt.to_csv('Result1.csv',float_format='%.2f')#保留两位小数 |
13 | as_recarray =False 现无此参数 注6 | 读入数据按np.array方式存储,现用pd.read_csv(…).to_records() 注1 |
错误处理 | ||
1 | error_bad_lines=True | 具有太多字段行(太多逗号)False删除这些行 |
2 | warn_bad_lines=True | error_bad_lines=False,warn_bad_lines=True输出每个“坏行”的警告. |
日期时间处理 | ||
1 | parse_dates =False | boolean or list of ints or names or list of lists or dict |
1)如为True- >尝试解析索引,解析所有列 | ||
2)如为[int]- >[1, 2, 3]尝试将每个列1,2,3解析为一个单独的日期列。 | ||
3)如为[[int]]- >[[1, 3]]将列1和列3合并,并将其解析为单一日期列 | ||
4)如为dict- >多列组合后解析;{'foo': [1, 3]}将1,3列合并,并给合并后的列起名为"foo" | ||
# 如果列或索引包含不可解析的日期,则整个列或索引将以对象数据类型不变地返回 | ||
# 对于非标准的日期时间解析,在“pd.read_csv”之后使用“pd.to_datetime” | ||
2 | infer_datetime_format =False | 如为True且parse_dates 可用,请尝试推断日期时间格式以加快处理速度,在某些情况下会快5~10倍. |
3 | keep_date_col =False | 如果True和parse_dates指定组合多个列,则保留原始列。 |
4 | date_parser =None function | 解析日期的函数,默认用dateutil.parser.parser来转换. 尝试用三种方式调用date_parser,如遇问题则用下一种方式. |
1.用一个或者多个arrays(由parse_dates指定)作为参数传递; | ||
2.将parse_dates定义的列中的字符串值连接(逐行)到一个数组中并传递; | ||
3.使用一个或多个字符串(对应于parse_dates定义的列)作为参数,为每一行调用date_parser一次 | ||
每行调用一次date_parser函数来解析一个或者多个字符串(由parse_dates指定)作为参数. | ||
5 | dayfirst =False | DD / MM格式日期,国际和欧洲格式;当解析有歧义的日期时,将其看做国际格式如,7/6/2012 ---> June 7 , 2012 |
注1:如果在每行末尾有一个带有分隔符的格式错误的文件,您可能会考虑index_col=False强制pandas 不使用第一列作为索引(行名称) | ||
注2:确保没混合类型,或用dtype指定类型.注意df无论是否将整个文件读入单个文件用chunksizeor iterator参数以块的形式返回数据.(仅 对C解析器有效) | ||
注3:默认, #N/A, #N/A N/A, #NA, -1.#IND, -1.#QNAN, -NaN, -nan, 1.#IND, 1.#QNAN, N/A, NA, NULL, ‘NaN, n/a, nan, null. | ||
注4:如果na_filter=False该keep_default_na和 na_values参数将被忽略. | ||
注5:如infer参数使用 .gz, .bz2, .zip或'.xz'结尾的字符串,否则不进行解压缩.如果使用'zip',则ZIP文件必须只包含一个要读入的数据文件. | ||
注6:这种方式读入的na数据不是显示na,而是给以个莫名奇妙的都作为缺省值 |