最近发现pandas强大的惊人,只是不懂。多走了很多歪路,浪费开发效率。准备好好总结一下pandas.
Basic
filepath_or_buffer : various
sep : str, defaults to ‘,’ for read_csv(), \t for read_table()
Regex example: ‘\r\t’.
delimiter : str, default None
delim_whitespace : boolean, default False
Specifies whether or not whitespace (e.g. ’ ’ or ‘\t’) will be used as the delimiter. Equivalent to setting sep=’\s+’. If this option is set to True, nothing should be passed in for the delimiter parameter.
seq:指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’
\s+的区别用代码看比较明显:
>>> pd.read_csv(temp_path)
1\t1.3\t1.4\t2
0 as\t3\t4\t5
>>> pd.read_csv(temp_path,sep='\s+')
1 1.3 1.4 2
0 as 3 4 5
>>>
处理有一些自然语言处理中的标注任务时,对数据读取时可以考虑一下这种方式
delimiter : str, default None
定界符,备选分隔符(如果指定该参数,则sep参数失效)
>>> pd.read_csv(temp_path,sep='\s+',delimiter='\n')
1\t1.3\t1.4\t2
0 as\t3\t4\t5
>>>
>>> pd.read_csv(temp_path,delimiter='\t')
1 1.3 1.4 2
0 as 3 4 5
>>>
delim_whitespace这个参数真是大杀器,似乎可以分割开一切分割符(可能说的不对后期会验证一下)
>>> pd.read_csv(temp_path,delim_whitespace=True)
1 1.3 1.4 2
0 as 3 4 5
>>>
Column and Index Locations and Names
header : int or list of ints, default ‘infer’
names : array-like, default None
index_col : int or sequence or False, default None
usecols : list-like or callable, default None