pandas的文件读取和保存
一、Excel文件的读取(read_excel)
pd.read_excel(io, sheetname=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=None, parse_cols=None, parse_dates=False, date_parser=None, na_values=None, thousands=None, convert_float=True, has_index_names=None, converters=None, dtype=None, true_values=None, false_values=None, engine=None, squeeze=False, **kwds)
参数说明:
-
io:字符串,文件的路径对象
-
sheetname:None、string、int、字符串列表或者是整数列表,default 为0,字符串用于工作表名称,整数用于零索引工作表位置,字符串列表或整数列表用于请求多个工作表,为None时获取所有工作表。
sheetname | 值的描述 |
---|---|
0 | 获取sheet1表格 |
1 | 获取sheet2表格 |
‘Sheet3’ | 获取sheet3表格 |
[0,1,‘Sheet5’] | 获取sheet1,sheet2和sheet5表格 |
-
header: 表示的是哪一行作为列索引,默认是0(第一行), 当header不为第一行的时候,会将默认为列索引之前的行全部删除不读,数据为列名行以下的数据;若数据不含列名,则设定 header = None。
-
names:当文件中没有给出表头的时候,需要将header设置为None值, 并且传入与列相同数量的list
data = pd.read_excel(r'G:\第四阶段-数据分析\day07\作业\meal_order_detail.xlsx',header=None,names=np.arange(19)) print(data.head())
-
index_col:指定列为索引列,默认None列(0索引)用作DataFrame的行标签。\
-
skiprows :跳过指定行(包括)之前的行开始读取
-
传入的值从1开始的任意int类型,超出行的长度不报错,显示为空,如下:
Empty DataFrame
Columns: []
Index: [] -
只剩最后一条数据时,显示如下:
Empty DataFrame
Columns: [4, peter, 18, man]
Index: []
nrows -
值为int类型,默认None,只取前n行数据,按索引传参
-
传入值为0时,只取第一行,显示如下:
Empty DataFrame
Columns: [1, jack, 22, man]
Index: [] -
传入其余值时,只显示该值(包括)之前的行,超出行的长度后不报错,有多少行显示多少行
-
二、读取csv文件(read_csv)
注释:.csv属于文本文件,逗号分隔文件,编码一般为gbk;
参数说明:
- sep:元素之间分隔符,csv文件默认分隔符为逗号;
- engine:{‘c’, ‘python’},底层编译的方式,默认是c语言,如果遇到问题,可以将engine改为Python;
- encoding:一般是gbk
- delimiter:str, default None,定界符,备选分隔符(如果指定该参数,则sep参数失效)
pd.read_table( r’path’,
sep=’,’,
encoding=‘gbk’,
engine=‘python’).head()
三、文件的保存
(1)保存到excel文件:to_excel
参数说明:
- excel_writer:字符串或Excelwrite对象,文件路径或现有的ExcelWriter
- sheet_name:字符串,默认’Sheet1’
- na_rep:字符串,默认’ ',缺失数据表示
df.to_excel(‘filename.xlsx’)
(2)保存到csv文件:to_csv
参数说明:
- path_or_buf:默认值为None,字符串或文件句柄,默认无文件,路径或对象,如果没有提供,结果将返回为字符串.
- sep:输出文件的字段的分隔符,默认为’,’
- na_rep:缺失数据表示,默认为’ ’
,默认无文件,路径或对象,如果没有提供,结果将返回为字符串.
- sep:输出文件的字段的分隔符,默认为’,’
- na_rep:缺失数据表示,默认为’ ’