Box
Box
Posts List
  1. 数据结构
  2. 系列
  3. 数据帧
  4. 面板
  5. 基本功能
  6. 函数引用
  7. 重建索引
  8. 迭代
  9. 排序
  10. 字符串和文本数据
  11. 选项和自定义
  12. 索引和选择数据
  13. 统计函数
  14. 窗口函数
  15. 缺失数据
  16. 分组
  17. 合并/拼接
  18. 级联
  19. 日期功能
  20. 时间差
  21. 分类数据
  22. 可视化
  23. IO工具
  24. 稀疏数据
  25. 链接

Pandas手册

这个不是全部API,而是大部分常用的,详细的API介绍还是移步官网

数据结构

  • 系列(Series) | 1维 | 大小不变
  • 数据帧(DataFrame) | 2维 | 大小可变的表结构与潜在的异质类型的列
  • 面板(Panel) | 3维 | 大小可变数组

系列

  • s = pd.Series(data=ndarray/list/constants, index, dtype, copy=false/true) 创建

数据帧

  • pandas.DataFrame(data=ndarray/series/map/lists/dict/constant/DataFrame, index, columns, dtype, copy=false/true) 创建
  • df['col'] 列选择
  • df['col'] = df['col_1'] + df['col_2'] 列添加
  • del df['col'] 或者 df.pop('col') 列删除
  • df.loc('index') 行选择 按标签
  • df.iloc[col_index_num] 行选择 按整数位置
  • df[start:end] 行切片
  • df.append(df_tmp) 附加行
  • df.drop(row_index_num) 删除行

面板

  • pandas.Panel(data=ndarray/series/map/lists/dict/constant/DataFrame, items=0, major_axis=1, minor_axis=2, dtype, copy=false/true) 创建(items:每个项目对应于内部包含的数据帧(DataFrame);major_axis:它是每个数据帧(DataFrame)的索引(行);minor_axis:它是每个数据帧(DataFrame)的列。)
  • p['df_num'] 选择数据 使用Item
  • p.major_axis(row_num) 选择数据 行
  • p.minor_axis(col_num) 选择数据 列

基本功能

  • 系列
    • s.axes 返回系列的标签列表
    • s.dtype 返回对象的数据类型
    • s.empty 返回布尔值,True表示对象是否为空
    • s.ndim 返回对象的维数
    • s.size 返回系列的长度
    • s.values 以数组形式返回系列中的实际数据值
    • s.head(n) 返回前n行
    • s.tail(n) 返回最后n行
  • 数据帧
    • df.T 转置行和列
    • df.axes 返回行轴标签和列轴标签列表
    • df.dtypes 返回每列的数据类型
    • df.empty 返回布尔值,True表示对象是否为空
    • df.ndim 返回对象的维数
    • df.shape 返回表示维度的元组
    • df.size 返回元素数
    • df.values 将实际数据作为NDarray返回
    • df.head(n) 返回前n行
    • df.tail(n) 返回最后n行
  • 描述性统计
    • df.sum(axis_n) 返回所请求轴的值的总和
    • df.mean() 返回平均值
    • df.std() 返回数字列的Bressel标准偏差
    • df.count() 返回非空观测数量
    • df.median() 返回所有值的中位数
    • df.mode() 返回值的模值
    • df.min() 返回所有值中的最小值
    • df.max() 所有值中的最大值
    • df.abs() 返回绝对值
    • df.prod() 返回数组元素的乘积
    • df.cumsum() 返回累计总和
    • df.cumprod() 返回累计乘积
    • df.describe(include='object/number/all') 返回有关列的统计信息的摘要(object:汇总字符串列;number:汇总数字列;all:将所有列汇总在一起。)

函数引用

  • df.pipe() 表格函数应用:可以通过将函数和适当数量的参数作为管道参数来执行自定义操作
  • df.apply() 行或列合理函数应用
  • df.applymap() 元素合理函数应用

重建索引

  • df.reindex(df_tmp, method='ffill/backfill/nearest', limit=n) 重建索引
  • df.rename(inplace=False/True) 重命名:方法允许基于一些映射(字典或者系列)或任意函数来重新标记一个轴

迭代

  • df.iteritems() 迭代(key,value)对
  • df.iterrows() 将行迭代为(索引,系列)对
  • df.itertuples() 以namedtuples的形式迭代行

排序

  • df.sort_index(axis=0/1, ascending=True/False) 按标签排序
  • df.sort_values(by, kind='mergeesort/heapsort/quicksort') 按值排序(by列名称;kind排序算法)

字符串和文本数据

  • lower() 将Series/Index中的字符串转换为小写
  • upper() 将Series/Index中的字符串转换为大写
  • len() 计算字符串长度
  • strip() 帮助从两侧的系列/索引中的每个字符串中删除空格(包括换行符)
  • split(' ') 用给定的模式拆分每个字符串
  • cat(sep=' ') 使用给定的分隔符连接系列/索引元素
  • get_dummies() 返回具有单热编码值的数据帧(DataFrame)
  • contains(pattern) 如果元素中包含子字符串,则返回每个元素的布尔值True,否则为False
  • replace(a,b) 将值a替换为值b
  • repeat(value) 重复每个元素指定的次数
  • count(pattern) 返回模式中每个元素的出现总数
  • startswith(pattern) 如果系列/索引中的元素以模式开始,则返回true
  • endswith(pattern) 如果系列/索引中的元素以模式结束,则返回true
  • find(pattern) 返回模式第一次出现的位置
  • findall(pattern) 返回模式的所有出现的列表
  • swapcase 变换字母大小写
  • islower() 检查系列/索引中每个字符串中的所有字符是否小写,返回布尔值
  • isupper() 检查系列/索引中每个字符串中的所有字符是否大写,返回布尔值
  • isnumeric() 检查系列/索引中每个字符串中的所有字符是否为数字,返回布尔值

选项和自定义

  • pd.get_option(param='display.max_rows/display.max_columns') 需要一个参数,并返回下面输出中给出的值
  • pd.set_option(param='display.max_rows/display.max_columns', value) 需要两个参数,并将该值设置为指定的参数值
  • pd.reset_option(param='display.max_rows/display.max_columns') 接受一个参数,并将该值设置为默认值
  • pd.describe_option(param='display.max_rows/display.max_columns') 打印参数的描述
  • pd.option_context() 上下文管理器用于临时设置语句中的选项
  • 常用参数:
    • display.max_rows 要显示的最大行数
    • display.max_columns 要显示的最大列数
    • display.expand_frame_repr 显示数据帧以拉伸页面
    • display.max_colwidth 显示最大列宽
    • display.precision 显示十进制数的精度

索引和选择数据

  • df.loc['row_start':'row_end', 'col_start':'col_end'] 完成基于标签的索引
  • df.iloc[row_start:row_end, col_start:col_end] 获得纯整数索引
  • df.ix[row_start:row_end, col_start:col_end] 运算符进行选择和子集化对象的混合方法
  • 使用符号
    • s.loc[indexer] Series
    • df.loc[row_index,col_index] DataFrame
    • p.loc[item_index,major_index, minor_index] Panel
  • df.index 属性访问(可以使用属性运算符.来选择列)

统计函数

  • df.pct_change() 将每个元素与其前一个元素进行比较,并计算变化百分比
  • df.cov(df_tmp) 协方差
  • df.corr() 相关性(相关性显示了任何两个数值(系列)之间的线性关系)
  • s.rank() 数据排名

窗口函数

  • df.rolling(window=n) n窗口大小的统计值(后加句点式统计函数)
  • df.expanding(min_periods=n) n窗口大小的统计值(累计计算)
  • df.ewm(com, span, halflife) n窗口大小的统计值

缺失数据

  • df.isnull() 检查缺失值,为空返回True
  • df.notnull() 检查缺失值,不为空返回True
  • 在求和数据时,NA将被视为0
  • df.fillna(n) 用标量值n替换NaN
  • df.fillna(method='fill/backfill') 填写NA前进和后退(fill填充方法向前;backfill填充方法向后)

分组

  • obj.groupby(‘key’)obj.groupby([‘key1’,’key2’])obj.groupby(key,axis=1) 将数据拆分成组
  • df.get_group('') 选择一个分组
  • df_group.transform(lambda) 转换(分组或列上的转换返回索引大小与被分组的索引相同的对象)
  • df.groupby('').filter(lambda_func) 过滤(过滤根据定义的标准过滤数据并返回数据的子集)

合并/拼接

  • pd.merge(left, right, how='inner/outer/left/right', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True) (left一个DataFrame对象;right另一个DataFrame对象;on列(名称)连接,必须在左和右DataFrame对象中存在(找到);left_on左侧DataFrame中的列用作键,可以是列名或长度等于DataFrame长度的数组;right_on 来自右的DataFrame的列作为键,可以是列名或长度等于DataFrame长度的数组;left_index如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键;how是left, right, outer以及inner之中的一个,默认为内inner;sort照字典顺序通过连接键对结果DataFrame进行排序)

级联

  • pd.concat(objs, axis=0, join='outer/inner', join_axes=None, ignore_index=False) 连接对象(objs是Series,DataFrame或Panel对象的序列或映射;axis是连接的轴;join如何处理其他轴上的索引;join_axes是Index对象的列表;ignore_index是否使用连接轴上的索引值)
  • df.append(df_tmp) 使用附加连接
  • pd.datetime.now() 获取当前的日期和时间
  • pd.date_range("start", "end", freq="").time 创建一个时间范围
  • pd.to_datetime() 转换为时间戳

日期功能

  • pd.date_range('data', periods=n, freq='') 创建一个日期范围(freq更改日期频率)
  • 偏移别名 略

时间差

  • pd.Timedelta('') 是时间上的差异,以不同的单位来表示

分类数据

  • pandas.Categorical(values, categories, ordered) 分类构造函数
  • s.categories 获取对象的类别
  • obj.ordered 获取对象的顺序
  • s.cat.categories 重命名类别
  • Categorical.add.categories() 附加新类别
  • Categorical.remove_categories() 删除类别
  • 当ordered==True和类别是相同时,所有比较(\==,!=,>,>=,<,和<=)分类数据到另一个分类系列 分类数据的比较

可视化

  • df.plot() 绘图
  • df.plot.bar(stacked=False/True) 竖直条形图
  • df.plot.barh(stacked=True) 水平条形图
  • df.plot.hist(bins=n) 直方图
  • df.plot.box() 箱型图
  • df.plot.area() 区域块图
  • df.plot.scatter(x='a', y='b') 散点图形
  • df.plot.pie(subplots=True) 饼状图

IO工具

  • pd.read_csv(index_col=['col_index'], dtype={'col_name': dtype}, names=['name'], skiprows=n) 从csv文件中读取数据并创建一个DataFrame对象(dtype转换器;使用names参数指定标题的名称;skiprows跳过指定的行数)

稀疏数据

  • s.to_sparse() 稀疏Dtypes(稀疏数据应该具有与其密集表示相同的dtype;支持float64,int64和booldtypes)

链接

Supporting
Scan, Support Daidai
  • WeChat scan
  • Alipay scan