1. 文本文件

  1. read_csv可以读取文本文件(.csv 格式):

    1. pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer',
    2. names=None, index_col=None, usecols=None, squeeze=False, prefix=None,
    3. mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None,
    4. false_values=None, skipinitialspace=False,skiprows=None, nrows=None,na_values=None,
    5. keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True,
    6. parse_dates=False, infer_datetime_format=False,keep_date_col=False,date_parser=None,
    7. dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None,
    8. decimal='.', lineterminator=None, quotechar='"', quoting=0, escapechar=None,
    9. comment=None, encoding=None, dialect=None, tupleize_cols=False,
    10. error_bad_lines=True, warn_bad_lines=True, skipfooter=0, skip_footer=0,
    11. doublequote=True, delim_whitespace=False, as_recarray=False,
    12. compact_ints=False, use_unsigned=False, low_memory=True,
    13. buffer_lines=None, memory_map=False, float_precision=None)
    • filepath_or_buffer:一个字符串,或者一个pathlib.Path对象,或者任何拥有.read()方法的对象。它指定了被解析的文件的位置。如果是个字符串,则必须是个URL(其中包含了协议名,如http//,ftp//,file//等)

    • sep:一个字符串,指定了分隔符。默认为','。如果设定为None,则自动决议分隔符。

      • 如果字符串长度大于1,则自动解析为正则表达式。如'\s+\解析为空白符
    • delimiter:一个字符串,指定了分隔符。它是sep参数的另一个候选参数

    • delim_whitespace:一个布尔值。如果为True,则将空白符(连续的空白或者单个空白)作为分隔符。此时不需要提供delimiter参数。它等价于sep='\s+'

    • header:一个整数或者整数列表。它指定了那些行是标题行,0表示第一行。如果你指定了header=[1,3,5],则第三行(行id=2)和第五行(行id=4)被忽略(不被解析)。

      • 如果names参数为空,则header默认值为 0.如果names参数提供了,则header默认值为None

- 该参数会忽略注释行。 - 如果`skip_blank_lines=True`,则该参数会忽略空白行。因此`header=0`表示第一个有效的数据行

  • names:一个array-like。它给出了列名。

    • 如果文件不包含标题行,则你需要显式通过names传入列名
    • 如果mangle_dupe_cols=True,则可以传入重复的列名。否则不允许重复列名
  • index_col:一个整数,或者序列,或者False。它指定哪一列作为row labels。如果你指定了一个序列,则使用MultiIndex。如果为False,则不采用任何列作为row labels

  • usecols:一个array-like。它指定:你将采用哪些列来组装DataFrame。该参数各元素必须要么是代表位置的整数,要么是代表列名的字符串

  • as_recarray:一个布尔值。被废弃的参数。

  • squeeze:一个布尔值。如果为True,则当解析结果只有一列数据时,返回一个Series而不是DataFrame

  • prefix:一个字符串。当没有标题时,你可以提供这个参数来给列名加一个前缀。(如果不加前缀,则列名就是0,1,2...

  • mangle_dupe_cols:一个布尔值。如果为True,则重复的列名X,X...被修改为X.0,X.1,...。如果为False,则重复的列名这样处理:后面的覆盖前面的

  • dtype:一个Type name或者字典:column->type。它可以给出每个列的类型。

  • engine:一个字符串,指定用什么解析引擎。可以为'c'/'python'c更快,但是python拥有更多特性

  • converters:一个字典,给出了每一列的转换函数。字典的键为代表列的位置的整数,或者代表列的名字的字符串。字典的值为可调用对象,参数为一个标量(就是每个元素值)

  • true_values:一个列表,给出了哪些值被认为是True

  • false_values:一个列表,给出了哪些值被认为是False

  • skipinitialspace:一个布尔值。如果为True,则跳过分隔符之后的空白符

  • skiprows:一个array-like或者整数。如果为序列,则指定跳过哪些行(从0计数);如果为整数,则指定跳过文件开头的多少行。注意:空行和注释行也包括在内,这一点和header不同。

  • skipfooter:一个整数。指定跳过文件结尾的多少行。不支持engine='c'

  • skip_footer:被废弃的参数

  • nrows:一个整数。指定读取多少行。

  • na_values:一个标量、字符串、字典、列表。指定哪些被识别为NAN。默认的NAN为列表['nan','NAN','NULL'....]

  • keep_default_na:一个布尔值。如果为True,则当你指定了na_values时,默认的NAN被追加到na_values上;否则指定的na_values代替了默认的NAN

  • na_filter:一个布尔值。如果为True,则不检查NaN,此时解析速度大大加快(但是要求你的数据确实没有NAN

  • verbose:一个布尔值。如果为True,输出解析日志

  • skip_blank_lines:一个布尔值。如果为True,则跳过空白行,而不是解析为NaN

  • parse_dates:一个布尔值、整数列表、标签列表、或者list of list or dict。对于iso8601格式的日期字符串,解析速度很快。

    • 如果为布尔值:如果为True,则解析index为日期
    • 如果为整数列表或者标签列表,则解析对应的列为日期
    • 如果列表的列表,如[[1,3]],则将列1和列3组合在一起,解析成一个单独的日期列
    • 如果为字典,如{'aaa':[1,3]},则将列1和列3组合在一起,解析成一个单独的日期列,日期列的名字为'aaa'
  • infer_datetime_format:一个布尔值。如果为True,且parse_dates非空,则pandas试图从数据中推断日期格式。

  • keep_date_col:一个布尔值。如果为True,并且parse_dates使用多个列合成一列日期,则保留原有的列

  • date_parser:一个函数对象。它将一列字符串转换成一列日期。

  • dayfirse:一个字符串。如果为True,则日期格式为DD/MM

  • iterator:一个布尔值。如果为True,则返回一个TextFileReader对象,该对象可以用于迭代或者.get_chunk()来返回数据块

  • chunksize:一个整数。指定TextFileReader对象.get_chunk()返回的数据块的大小。

  • compression:一个字符串。可以为'infer','gzip','bz2','zip','xz',None。如果文件为压缩文件,则它用于指定解压格式

  • thousands:一个字符串。指定了数值中千位数的分隔符,如999,999,999

  • decimal:一个字符串,指定了小数点的分隔符,如9.999

  • float_precision:一个字符串。指定了C engine的转换浮点数的精度。None普通转换,'high'为高精度转换,'round_trip'round_trip转换。

  • lineterminator:一个长度为1的字符串。指定了C engine中的换行符

  • quotechar:一个长度为1的字符串,它指定了引用字符。比如"aaa,bbb",这种数据是引用数据。如果你用,分隔,则有问题。在引用字符包围的数据中,不考虑分隔符。

  • comment:一个长度为1的字符串,指定了注释字符。如果该字符串出现在行中,则行末的字符不被解析。如果该字符串出现在行首,则本行不被就解析。

  • encoding:一个字符串,指定了编码类型

  • error_bad_lines:一个布尔值。如果为True,则如果某一行有太多字段,则函数抛出异常。如果为False,则抛弃该行,顺利解析。只用于C engine

  • warn_bad_lines:一个布尔值。如果为True,且error_bad_lines=False,则对于异常的行,输出警告

  • buffer_lines/compact_ints /use_unsigned:被废弃的参数

  • memory_map:如果为True,且filepath是一个文件名,则使用内存映射,将文件映射到内存中。

read_csv0 read_csv1

  1. read_table也能完成read_csv的功能。二者接口一致。

    1. pandas.read_table(filepath_or_buffer, sep='\t', delimiter=None, header='infer',
    2. names=None, index_col=None, usecols=None, squeeze=False, prefix=None,
    3. mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None,
    4. false_values=None, skipinitialspace=False,skiprows=None, nrows=None, na_values=None,
    5. keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True,
    6. parse_dates=False,infer_datetime_format=False,keep_date_col=False, date_parser=None,
    7. dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None,
    8. decimal='.', lineterminator=None, quotechar='"', quoting=0, escapechar=None,
    9. comment=None, encoding=None, dialect=None, tupleize_cols=False,
    10. error_bad_lines=True, warn_bad_lines=True, skipfooter=0, skip_footer=0,
    11. doublequote=True, delim_whitespace=False, as_recarray=False,
    12. compact_ints=False, use_unsigned=False, low_memory=True,
    13. buffer_lines=None, memory_map=False, float_precision=None)
  2. DataFrame/Series.to_csv方法可以将数据写入到文件中

    1. DataFrame.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None,
    2. columns=None, header=True, index=True, index_label=None, mode='w',
    3. encoding=None, compression=None, quoting=None, quotechar='"',
    4. line_terminator='\n', chunksize=None, tupleize_cols=False, date_format=None,
    5. doublequote=True, escapechar=None, decimal='.')
    6. Series.to_csv(path=None, index=True, sep=', ', na_rep='', float_format=None,
    7. header=False, index_label=None, mode='w', encoding=None, date_format=None,
    8. decimal='.')
    • path_or_buf:一个字符串或者file对象。指定写入的文件。如果为空,则返回一个字符串而不是写入文件
    • sep:一个字符串,指定字段的分隔符
    • na_rep:一个字符串,指定NaN的代表字符串
    • float_format:一个字符串,指定了浮点数的格式化字符串
    • columns:一个序列,指定要写入哪些列
    • header:一个布尔值或者字符串列表。如果为True,则写出列名。如果为字符串列表,则它直接指定了列名的别名
    • index:一个布尔值。如果为True,则输出index label
    • mode:一个字符串,文件操作的读写模式。默认为'w'
    • encoding:一个字符串,指定编码方式
    • compression:一个字符串,指定压缩格式
    • line_terminator:一个字符串,指定换行符
    • chunksize:一个整数,指定了一次写入多少行
    • date_format:一个字符串,给出了日期格式化字符串
    • decimal:一个字符串,给出了小数点的格式
    • tupleize_cols:一个布尔值。如果为True,则MultiIndex被写成list of tuples

    to_csv