pandas21 读csv文件read_csv(2.read_csv参数介绍)(详细 tcy)

解析选项

目录:
第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,而是给以个莫名奇妙的都作为缺省值

 

猜你喜欢

转载自blog.csdn.net/tcy23456/article/details/85289928