Pandas的数据读取与输出
🔖 pandas
🔖 machine learning
Pandas 提供了丰富的数据类型读取接口,比如 CSV,Excel,JSON 等。在此只介绍前两者。
1 数据读取
read_csv()
的参数如下:
pandas.read_csv(filepath_or_buffer, # 文件路径
sep=_NoDefault.no_default, # 分隔符,和 delimiter 一样,两者选其一即可
delimiter=None,
header='infer', # 表头,默认为第一行
names=_NoDefault.no_default, # 如果表头设置为None,则可自定义表头名称,即 columns 名称
index_col=None, # 索引列,默认无
usecols=None, # 选择要使用的列
squeeze=None,
prefix=_NoDefault.no_default, # 给表头添加前缀,比如原表头名称为 '1,2,3';添加前缀 'ORP_' 后变为 'ORP_1, ORP_2, ORP_3'
mangle_dupe_cols=True, # 表头名称如果重复,比如有两列 'ORP',使用该选项后可将其转化为 ' ORP_1, ORP_2'
dtype=None, # 数据类型
engine=None,
converters=None,
true_values=None,
false_values=None,
skipinitialspace=False,
skiprows=None, # 跳过指定汗
skipfooter=0,
nrows=None,
na_values=None, # 空值替换,若想将 '5, 5.0' 设置为空值,则可使用 na_values=[5, 5.0]
keep_default_na=True, # 是否保留 NaN 为空值,此选项和 na_values 共同决定空值有哪些
na_filter=True, # 是否检查空值,如果确定文件中无空值,则可将其设置为 False,提高运行速度
verbose=False,
skip_blank_lines=True, # 是否跳过空行
parse_dates=None, # 是否对时间日期进行解析
infer_datetime_format=False, # 如果开启了 parse_dates 选项,而且 datetime 字符串的格式都相同,则可大大提高运算速度
keep_date_col=False,
date_parser=None,
dayfirst=False,
cache_dates=True,
iterator=False,
chunksize=None,
compression='infer',
thousands=None, # 是否设置千分位分隔符
decimal='.', # 小数点标识符
lineterminator=None, # 行结束标识符,比如 'a,b,c~1,2,3~4,5,6',将 lineterminator='~',则读取后的结果为 'a,b,c' '1,2,3' '4,5,6'
quotechar='"',
quoting=0,
doublequote=True,
escapechar=None,
comment=None, # 注释标识符,比如 comment='#',则会被忽视
encoding=None,
encoding_errors='strict',
dialect=None,
error_bad_lines=None,
warn_bad_lines=None,
on_bad_lines=None,
delim_whitespace=False, # 空格分隔符,和 delimiter, sep 冲突,相当于 sep='\s+'
low_memory=True,
memory_map=False,
float_precision=None,
storage_options=None)
和 read_csv()
相比, read_excel()
仅仅多了一个 sheet_name()
选项:
pandas.read_excel(io,
sheet_name=0, # 要读取的 sheet 名称,可以是一个也可以是多个,如果不指定则默认第一个。int 为序号,str 为名称。比如 [0,1, 's1'] 表示读取第 1,2 和名称为 's1' 的 sheet。
header=0,
names=None,
index_col=None,
usecols=None,
squeeze=None,
dtype=None,
engine=None,
converters=None,
true_values=None,
false_values=None,
skiprows=None,
nrows=None,
na_values=None,
keep_default_na=True,
na_filter=True,
verbose=False,
parse_dates=False,
date_parser=None,
thousands=None,
decimal='.',
comment=None,
skipfooter=0,
convert_float=None,
mangle_dupe_cols=True,
storage_options=None)
可以看到大部分命令和 read_csv
基本一致,但是多了 sheet_name
选项。如果 csv
文件格式能满足需求,则尽量避免使用 excel
,因为前者更通用,读取数据快且处理方法更丰富。
2 数据输出
处理后的表格也可以进行相应的输出。to_csv()
的参数如下:
DataFrame.to_csv(path_or_buf=None, # 路径
sep=',', # 分隔符
na_rep='', # 空值代替符号
float_format=None,
columns=None, # 表头名称
header=True, # 是否含有表头,和 columns 结合使用,也可直接在此传入表头名称
index=True,
index_label=None,
mode='w',
encoding=None,
compression='infer', # 是否压缩,不常用
quoting=None,
quotechar='"',
lineterminator=None,
chunksize=None,
date_format=None,
doublequote=True,
escapechar=None,
decimal='.',
errors='strict',
storage_options=None)
to_excel()
和 to_csv()
相比,特殊之处在于前者支持多 sheet: