1. 读取数据
df = pd.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, skipfooter=0, convert_float=True, mangle_dupe_cols=True, **kwds)
地址:本地相对路径/本地绝对路径/使用URL
1.1 表格
sheet_name=0 #第一个sheet;
sheet_name=None #所有sheet;
sheet_name="名称" #指定sheet的名称;
sheet_name=[0, 1, "sheet5"] #读取第一个,第二个,表名为sheet5的表格;
1.2 表头
header=0;表示第一行为表头;
header=None # 不设表头;
header=[0, 1]) # 两层表头,多层索引;
1.3 列名
names=['姓名', '年龄', '成绩'] #选定姓名、年龄、成绩列;
names=c_list) # 传入列表变量;
names=None # 没有表头,需要设置为None;
1.4 索引
index_col=False # 不再使用首列作为索引
index_col=0 # 第几列是索引;也可用 df.set_index("目标列名", inplace=Ture) 创建索引列;
index_col=' 年份 ' # 指定列名
index_col=['a','b'] # 多个索引
index_col=[0, 3] # 按列索引指定多个索引
1.5 使用部分列
usecols=[0,4,3] # 按索引只读取指定列,与顺序无关
usecols=[' 列 1', ' 列 5'] # 按列名,列名必须存在
pd.read_excel(data, usecols=[' 列 1', ' 列 5'])[[' 列 5', ' 列 1']]# 指定列顺序,其实是 df 的筛选功能
usecols=lambda x: x.upper() in ['COL3', 'COL1']# 以下用 callable 方式可以巧妙指定顺序, in 后面的是我们要的顺序
1.6 返回序列
squeeze=True #将squeeze设置为True,如果文件只包含一列,则返回一个Series,
如果有多列,则还是返回 DataFrame 。
1.7 数据类型
dtype=np.float64 # 所有数据均为此数据类型
dtype={'c1':np.float64, 'c2': str} # 指定字段的类型
dtype=[datetime, datetime, str, float] # 依次指定字段的类型
1.8 引擎
engine=None# 格式为 engine=None ,其中可选值有 {'c', 'python'}
1.9 真假值转换
true_values=['Yes'], false_values=['No']) # 列表,默认为 None,真值为Yes,假值为No;
1.10 跳过指定行
skiprows=2 # 跳过前三行;
skiprows=range(2) # 跳过前三行;
skiprows=[24,234,141] # 跳过指定行;
skiprows=np.array([2, 6, 11]) # 跳过指定行;
skiprows=lambda x: x % 2 != 0 # 隔行跳过;
skipfooter=1 # 最后一行不加载;
skip_blank_lines=False # skip_blank_lines指定是否跳过空行,如果为True,则跳过空行,否
则数据记为 NaN
1.11 读取指定行
# int 类型,默认为 None
nrows=1000
1.12 符号
thousands=',' # 设置千分位分隔符thousands;
decimal="," # 小数点 decimal ,识别为小数点的字符