深入浅出Pandas:利用Python进行数据处理与分析 (李庆辉) 读书笔记

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 ,识别为小数点的字符

你可能感兴趣的:(python,python)