摘自《利用Python进行数据分析》—— Wes McKinney
读写文本格式的数据
pandas中的解析函数:
函数 | 说明 |
---|---|
read_csv | 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号 |
read_table | 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符(“\t”) |
read_fwf | 读取定宽列格式的数据(也就是说,没有分隔符) |
read_clipboard | 读取剪贴板中的数据,可以看作read_table的剪贴板版。在将网页转换为表格式时很有用 |
我将大致介绍一下这些函数在将文本数据转换为DataFrame时所用到的一些技术。这些函数的选项可以划分为以下几个大类:
- 索引:将一个或多个列当作返回的DataFrame处理,以及是否从文件、用户获取列名。
- 类型推断和数据转换:包括用户定义值的转换、缺失值标记列表等。
- 日期解析:包括组合功能,比如将分散在多个列中的日期时间信息组合成结果中的单个列。
- 迭代:支持对大文件进行逐块迭代
- 不规整数据问题:跳过一些行、页脚、注释或者其他一些不重要的东西(比如有成千上万个逗号隔开的数值数据)。
对于常用的pd.read_csv(),官方给出划分:
类别 | 参数 |
---|---|
Begin | filepath_or_buffer, sep=’,’, delimiter |
Column and Index Location and Names | header, names, idex_col, usecols, squeeze, prefix, mangle_dupe_cols |
General Parsing Configuration | dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows |
NA and Missing Data Handling | na_values, keep_default_na, na_filter, verbose, skip_blank_lines |
Datetime Handling | parse_date, infer_datetime_format, keep_date_col, date_parser, dayfirst |
Iteration | iterator, chunksize |
Quoting, Compression, and File Format | compression, thousands, decimal, lineterminator, quotechar, quating, escapechar, comment, encoding, dialect, tupleize_clos |
Error Handling | error_bad_lines, warn_bad_lines |
Internal | skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision |
对于函数pd.read_csv(),header=None
时pandas分配默认列名,需输入参数names
,然后可以通过index_col=列名或[列名列名](MultiIndex)
将某一列作为索引,当然在values中这列就不存在了。
逐块读取文本文件
如果指向读取几行(避免都去整个文件),通过nrows=行数
进行指定即可。姚铸块读取文件,需要设置chunksize=行数
,此时的pd.re