pandas丨数据读取与保存
读取excel文件: pandas.read_excel()保存excel文件: pandas.to_excel()pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None,
squeeze=False, dtype=None, engine=None, converters=None, true_values=None,
false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True,
verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None,
skip_footer=0, skipfooter=0, convert_float=True, mangle_dupe_cols=True, **kwds)
#查看帮助文件import pandas as pdhelp(pd.read_excel)
Help on function read_excel in module pandas.io.excel._base:read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False, 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, comment=None, skipfooter=0, convert_float=True, mangle_dupe_cols=True)Read an Excel file into a pandas DataFrame.Supports `xls`, `xlsx`, `xlsm`, `xlsb`, `odf`, `ods` and `odt` file extensionsread from a local filesystem or URL. Supports an option to reada single sheet or a list of sheets.
常用参数: io:excel的路径,选中文件,鼠标右键,在"属性"中找到文件位置,再补充上文件名称,则为完整路径。注意反斜杠方向 ★★★★★sheet_name:工作表的名称。当不输入时,默认读取第一个工作表 不常用参数 index_col :指定某一列为索引。index_col=1names :列名称,传入list数据header: 指定行作为列名,默认为第1行。header=[1,2]多级索引usecols: 读取指定列。usecols = [“A”,“B”]skiprows: 忽略前几行
pd.read_excel()常用参数
io
要读取文件所在的位置
字符串注意 \ 和 / 的区别
# 读取文件# 导入pandas工具包import pandas as pd
# 方式1 ★★★data1 = pd.read_excel('C:/Users/yyz/Desktop/python数据分析基础/data/泰坦尼克数据.xlsx')data1.head()
data2 = pd.read_excel('C:\\Users\\yyz\\Desktop\\python数据分析基础\\data\\泰坦尼克数据.xlsx')
data3 = pd.read_excel(r'C:\Users\yyz\Desktop\python数据分析基础\data\泰坦尼克数据.xlsx')
data3.head()
# 方式2 ★★★# 导入os工具包import os# 设置默认路径,当读取此文件夹下的文件时,直接输入文件名称就可以os.chdir('C:/Users/yyz/Desktop/python数据分析基础/data/')
data4 = pd.read_excel('泰坦尼克数据.xlsx')
data4.head()
sheet_name
读取的工作表,可以是工作表名称, 也可以是工作表所在的位置,0 表示第1个.
格式: 整数或者是字符串
# 方式1 ★★★data5 = pd.read_excel('泰坦尼克数据.xlsx',sheet_name='Sheet1')data5.head()
# 方式2data6 = pd.read_excel('泰坦尼克数据.xlsx',sheet_name=1)data6.head()
pd.read_excel()不常用参数
index_col
指定哪一列为索引, 默认不设置
格式:字符串或者字符串构成的列表
data7 = pd.read_excel('泰坦尼克数据.xlsx',index_col='乘客ID')data7
891 rows × 11 columns
names
指定列名
格式: 列表
data8 = pd.read_excel('泰坦尼克数据.xlsx',names=['变量1','变量2','变量3','变量4','变量5','变量6','变量7','变量8','变量9','变量10','变量11','变量12'])
data8.head()
# 更改列名一般用DataFrame中columns属性★★★data8.columns = ['乘客ID', '是否存活', '票类', '姓名', '性别', '年龄', '乘客兄弟姐妹个数','乘客父母/孩子的个数', '票号','票价', '仓位', '登船港口']
data8.head()
usecols
选择要读取的列
格式: 列表
data7 = pd.read_excel('泰坦尼克数据.xlsx',usecols=['姓名','性别','年龄'])data7.head()
# 方式二★★★data8 = pd.read_excel('泰坦尼克数据.xlsx')[['姓名','性别','年龄']] # 注意是两个中括号data8.head()
header
设置列名所在的行
格式: 整数或者 None
data9 = pd.read_excel('泰坦尼克数据.xlsx',header=1)data9.head()
data10 = pd.read_excel('泰坦尼克数据.xlsx',header=None)data10.head()
skiprows
忽略前几行:当前几行为空行或者其他不需要读取的数据时使用
data11 = pd.read_excel(r'C:\Users\yyz\Desktop\python数据分析基础\data\泰坦尼克数据.xlsx',skiprows=1)data11.head()
pd.to_excel()常用参数
# 导入pandas工具包,并简写为pdimport pandas as pd# 读取数据data1 = pd.read_excel('C:/Users/yyz/Desktop/python数据分析基础/data/泰坦尼克数据.xlsx')
data1.head()
data1.info()
<class 'pandas.core.frame.DataFrame'>RangeIndex: 891 entries, 0 to 890Data columns (total 12 columns):# ColumnNon-Null Count Dtype --- -------------------- ----- 0 乘客ID 891 non-null int64 1 是否存活 891 non-null int64 2 票类891 non-null int64 3 姓名891 non-null object 4 性别891 non-null object 5 年龄714 non-null float646 乘客兄弟姐妹个数 891 non-null int64 7 乘客父母/孩子的个数 891 non-null int64 8 票号891 non-null object 9 票价891 non-null float6410 仓位204 non-null object 11 登船港口 889 non-null object dtypes: float64(2), int64(5), object(5)memory usage: 83.7+ KB
# 数据透视表1:按照性别、登录港口统计人数result1 = data1.pivot_table('姓名',# 需要计算统计量的变量(字段)index='性别', # 行变量,当需要输入多个时 用列表形式 ['','']columns='登船港口', # 列变量,当需要输入多个时 用列表形式 ['','']aggfunc='count', # 需要计算的统计量,'sum','mean','max'等margins=True) # 是否显示合计# 数据透视表2:按照性别、票类统计人数result2 = data1.pivot_table('姓名',index='性别',columns='票类',aggfunc='count',margins=True) # 是否显示合计
result1.head()
result2
# 最常用写法result1.to_excel('C:/Users/yyz/Desktop/保存数据1.xlsx')
# 当索引为数值序列,不期望导出的时候设置index=Falseresult2.to_excel('C:/Users/yyz/Desktop/保存数据2.xlsx',index=False)
result2.to_excel('C:/Users/yyz/Desktop/保存数据3.xlsx',sheet_name='汇总')
with pd.ExcelWriter('C:/Users/yyz/Desktop/保存数据4.xlsx') as writer:result1.to_excel(writer,sheet_name='第1个表')result2.to_excel(writer,sheet_name='第2个表')
pandas丨读取csv、txt文件
当数据量比较大时, 一般会存储为csv或者txt格式文件;读取方法:pandas.read_csv(), 括号内参数如下:常用参数: filepath_or_buffer :文件路径 ,和读取excel中io参数一样sep :分隔符,默认逗号,其他特殊符号: ※ 回车: \r,换行: \n,制表符: \t,空白字符: \s多个空白字符: \s+ encoding :一般utf-8 或者 gbk 其他参数和pd.read_excel()参数类似pandas.read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], sep=’,’, delimiter=None,
header=‘infer’, names=None, index_col=None, usecols=None, squeeze=False, prefix=None,
mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None,
false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None,
na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True,
parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None,
dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression=‘infer’,
thousands=None, decimal=b’.’, lineterminator=None, quotechar=’"’, quoting=0, doublequote=True,
escapechar=None, comment=None, encoding=None, dialect=None, error_bad_lines=True,
warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False,
float_precision=None)
# 查看帮助文档import pandas as pdhelp(pd.read_csv)
Help on function read_csv in module pandas.io.parsers:read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal: str = '.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)
# 读取csv格式文件data1 = pd.read_csv('C:/Users/yyz/Desktop/python数据分析基础/data/titanic_train.csv')data1.head()
# 读取txt格式文件:sep参数data2 = pd.read_csv('C:/Users/yyz/Desktop/python数据分析基础/data/titanic_train.txt',sep='\t') # 不输入sep参数则无法准确读取data2.head()
data2.sample(10).to_csv('C:/Users/yyz/Desktop/导出txt文件.txt',sep=':')
提升代码速度小技巧
微软拼音:设置→常规→开启“中文输入时使用英文标点”搜狗拼音:设置→常用→开启“中文时使用英文标点”
扫码关注微信, 赠送《pandas数据读取与清洗》视频及课程代码!