• python库--pandas--DataFrame


    转换    索引,迭代    运算符    功能应用,分组及窗口    计算/描述统计

    重新索引/选择/标签操作    缺失数据处理    形状变换/排序/转置

    组合/加入/合并    时间序列相关    绘图    序列化/IO/转换    稀疏


     点击打开API: 官方    中文

    方法 返回值类型 参数 说明
    DataFrame() df data=None 2D数据或字典
    index=None 索引
    columns=None 列标签
    dtype=None 数据类型
    copy=False 是否复制数据
    属性及底层数据结构
    .as_matrix() ndarray columns=None 返回指定列(默认全部)
    .get_dtype_counts()     返回dtype的计数结果
    .get_ftype_counts()     返回ftype的计数结果
    .select_dtypes() df 选择或排除指定数据类型的列
    include=None 标量或list_like, 要选择的列
    exclude=None 标量或list_like, 要排除的列
    .memory_usage()   Series df的内存使用情况
    index=True 索引是否参与计算
    deep=False 是否计算df引用的对象的内存使用情况
    .index   行标签
    .columns   列标签
    .values ndarray df的值
    .dtypes Series df每一列的数据类型
    .ftypes Series 返回df每一列是稀疏还是稠密, 以及数据类型
    .axes list 返回 [行标签, 列标签]
    .ndim int 轴数
    .size int df的元素数量
    .shape tuple df的形状
     转换  (转到首行)
    .astype() df 转换数据类型
    dtype np.dtype 或 {列名: np.dtype}
    copy=True 是否复制基层数据
    errors='raise' 'raise': 转换失败则报错
    'ignore': 转换失败则保留原数据类型
    **kwargs 更多关键字参数
    .infer_objects() df 试图推断更好的dtypes
    .copy() df 拷贝数据
    deep=True False: 同赋值号, True: 拷贝数据, 但不会深层拷贝
    .isnull() df 判断对应位置元素是否是空值, 0.22版本新增.isna()
    .notnull() df 判断对应位置元素是否不是空值, 0.22版本新增.notna()
    索引, 迭代  (转到首行)
    .head() df n=5 返回前n行
    .at[i, c]   标量 基于标签的访问器
    .iat[m, n]   标量 基于位置的访问器
    .loc[i, c]      [i, c] 基于单个标签访问
    [[i1,i2], [c1,c2]] 基于多个标签访问
    [i1:i2, c1:c2] 包括边界
    [bool_df] 仅保留True位置的值
    .iloc[m, n]   参考.loc, 不过是基于位置的
    .insert() df 新增列
    loc 要插入的位置[0, len(columns)]
    column 要设置的列标签
    value 要插入的值
    allow_duplicates=F 列标签是否允许重名
    .__iter__() iter 返回一个列标签迭代器
    .iteritems() iter 返回列迭代器 (列名, Series)
    .iterrows() iter 返回行迭代器 (索引, Series)
    .itertuples() iter 返回行迭代器 Pandas(Index=i1, c1=v1, c2=v2, ...)
    index=True 是否返回索引
    name='Pandas'  
    .lookup() ndarray 返回 [df.loc[i1,c1], df.loc[i2,c2], ...]
    row_labels [i1, i2, ...]
    col_labels [c1, c2, ...]
    .pop() Series item 删除并返回指定列
    .tail() df n=5 返回后n行
    .xs()   返回指定行或列
    key 行标签或列标签, 可以是Multilndex (c_name or int)
    axis=0
    level=None 标量或list_like. 指定key是多级索引中的哪几级
    drop_level=True 是否删除level指定的那几级索引
    .isin() df 判断元素是否在values中
    values list: 判断所有元素是否在此列表中
    dict: {c: []} 判断对应列的值是否在字典对应列表中
    df: 对应列名, 包含且index相同才返回True
    .where() df 把df中不满足条件的那些值替换为other
    cond 跟df同形状的bool元素组成的2D数据
    oter=nan 标量或df. False对应的值替换为other
    inplace=False 是否本地修改
    axis=None df和other对齐的轴, 另外一个轴按顺序对齐
    level=None 如有需要, 对齐级别
    errors='raise' 此参数目前无效
    try_cast=False 尝试将结果转换为输入类型
    raise_on_error=N 0.21弃用
    .mask() df 与where相反, 将满足条件的替换为other
    .query() df 返回满足条件的行
    expr 比如 'c1 > c2' 返回满足c1>c2的那些行 (也可用@符号调用变量)
    inplace=False 是否本地修改
    **kwargs pandas.eval()
    运算符  (转到首行)
    .add() df 加法运算, 类似df+other
    other 常量, Series或df
    axis='columns' {0, 1, 'index', 'columns'}, other为Series时生效
    level=None int或name. 在一个级别上广播
    fill_value=None 用来填充缺失值的值, 若两个df位置都丢失, 结果将会丢失
    .sub; .mul; div; .truediv; .floordiv; .mod; .pow  -   *   /   /   //   %   **
    .radd; .rsub; ... 右侧运算, 即 other - df 等
    .lt ; .gt ; .le ; .ge ; .ne ; .eq  <   >   <=   >=   !=   ==
    .combine() df 使用自定义函数运算
    other df
    func 传入两个Series(两个df的对应列), 返回一个Series
    fill_value=None 标量
    overwrite=True  
    .combine_first() df other 按照索引求并集, 优先保留左侧值
    功能应用, 分组及窗口  (转到首行)
    .apply()
           
    df
           
    对df中的每一行(列)执行操作
    func 传入一个Series, 返回一个Series
    axis=0 0或'index': 传入的是列
    1或'columns': 传入的是行
    broadcast=False 是否广播, 对于聚合函数, 返回和传播值相同大小的对象
    raw=False True: 传入函数的将是ndarray而不是Series(性能更好)
    reduce=None True: 返回Series(若无法返回Series将返回df), False: 返回df
    args=() 其它位置参数传递给func
    **kwds 其它关键词参数传递给func
    .applymap() df 对每一个元素执行func
    func 传入一个值, 返回一个值
    .agg[regate]()   df 对每一列(行)执行某一操作
    func '内置函数名': 对每一列(行)执行此操作(如'sum')
    function: 要对每一列(行)执行的操作
    ['内置函数名'] or [function] 对每一列(行)执行多个操作
    dict: {name: function or functions} 对对应列(行)执行对应操作
    axis=0 0: 对每一列执行操作, 1:对每一行执行操作
    *args 传递给函数的位置参数
    **kwargs 传递给函数的关键词参数
    .transfrom() df func 参考.agg
    *args
    **kwargs
    .groupby() obj 对数据进行分组, 分组后使用sum之类的方法可以计算分组后的结果
    by [c1, c2]: 选中某些列作为分组标准
    axis=0
    level=None 多级索引的级别名称
    as_index=True 分组的列是否作为结果的索引
    sort=True  
    group_keys=True  
    squeeze=False  
    **kwargs  
    .rolling() obj 指定窗口, 步长为1移动窗口, 可对窗口中内容分别进行运算, 比如.sum()
    windows 窗口大小(n行/列)
    min_periods=None 允许的最小窗口
    freq=None  
    center=False 是否将计算结果放到中心而不是右侧
    win_type=None 参考scipy.signal(默认所有点均匀加权)
    on=None 在指定列来计算滚动窗口而不是索引(此列将不参与计算)
    axis=0
    closed=None  
    .expanding() obj 累计计算, 比如加.sum()累加等
    min_periods=1 参考.rolling
    freq=None
    center=False
    axis=0
    .ewm() obj  
     计算/描述统计  (转到首行)
    .abs() df 对所有元素求绝对值, 仅适用于全为数字的对象
    .all() S/df 判断每一列(行)是否全为True
    axis=None
    bool_only=None 是否仅计算bool类型的值
    skipna=None  
    level=None 用于指定多级索引
    **kwargs  
    .any() S/df 判断每一列(行)是否存在True (参数同.all)
    .clip() df 限定取值范围(范围外的的将被更新为设定的最小值或最大值)
    lower=None float或array_like. 最小值
    upper=None 最大值
    axis=None
    inplace=False 是否本地修改
    *args  
    **kwargs  
    .clip_lower() df 同.clip, 但只给出下限
    threshold 界限值
    .clip_upper() df 同.clip_lower, 但给出的是上限值
    .corr() df 计算列的成对相关性, 不包括Na值
    method='pearson' 'pearson': 标准相关系数
    'kendall'
    'spearman'
    min_periods=1  
    .corrwith() df 计算两个df之间的成对相关系数
    other df
    axis=0
    drop=False  
    .count() S/df 统计, 统计非NaN的数量
    axis=0 轴  {0 or 'index', 1 or 'columns'}
    level=None 如果轴是MultiIndex, 则沿指定级别进行计数, 折叠到DataFrame中
    numeric_only=False 是否仅对 float, int, bool 类型数据进行统计
    .cov() df 计算列的成对协方差, 不包括NA
    min_periods=None 每列所需的最小观察次数, 以获得有效结果
    .cummax() df 下面一个值更新为其上面最大的一个值(即累积最大值)
    axis=None
    skipna=True 是否忽略空值, False: Na下面全部被更新为Na
    .cummin() df 参考.cummax(), 但更新为累积最小值
    .cumprod() df 参考.cummax(), 但更新为累积积
    .cumsum() df 参考.cummax(), 但更新为累积和
    .describe() df 生成统计描述, count, mean, std, min, max, ...
    percentiles=None 输出相应的百分位数0~1, 默认 [.25, .5, .75]
    include=None 返回到结果中的白名单(列)
    'all': 所有列都将包含在输出中
    list_like: 将结果限制为指定类型, np.number显示数字类型的统计结果, np.object显示对象类型的统计结果, 'O'显示字符串类型的统计结果
    None: 结果将包含所有数字列
    exclude=None 从结果中省略的黑名单, list_like or None
    .diff() df 下面的值跟上面的差
    periods=1 下面值跟上面第 periods 个值的差
    axis=0
    .eval()   将字符串转换为表达式
    expr 'a+b': 返回df的a列与b列相加的结果
    'c=a+b': 新增一列c为a列与b列相加的结果
    '1+1': 返回1+1的结果
    inplace=False 是否本地修改
    **kwargs 更多参数参考pandas.eval()
    .kurt() S/df 无偏峰度
    axis=None
    skipna=None(True) 计算时是否排除空值
    level=None 如果轴是MultiIndex, 则沿指定级别进行计算, 返回df
    numeric_only=None 是否仅对 float, int, bool 类型数据进行计算
           
           
     重新索引/选择/标签操作  (转到首行)
    .add_prefix() df prefix 将列标签前面加上前缀prefix
    .add_suffix() df suffix 将列标签前面加上后缀suffix
    .align() tuple 更新索引并以(df1, df2)的形式返回, 缺失值以nan补全
    other df或Series
    join='outer' 'outer': 新索引为s与s2的并集
    'inner': 新索引为s与s2的交集
    'left' : 新索引为s的索引
    'right': 新索引为s2的索引
    axis=None
    level=None 指定多级索引的级别
    copy=True 是否返回新对象
    fill_value=None 缺失值使用的值, 默认为np.nan
    method=None  
    limit=None  
    fill_axis=0  
    broadcast_axis=N 沿该轴广播
    .drop() df 删除对应索引或标签
    labels=None 要删除的行(列), 单一标签或list_like
    axis=0
    index=None 0.21新增, 相当于(label, axis=0)
    columns=None 0.21新增, 相当于(label, axis=1)
    level=None 指定多级索引的级别
    inplace=False 是否本地修改
    errors='raise' 'ignore': 忽略错误
    .drop_duplicates() df 删除重复项
    subset=None 列标签或标签序列, 只考虑识别选中列的重复项, 默认所有列
    keep='first' 'first': 仅保留第一次出现的副本(默认)
    'last': 删除重复项, 但最后一项除外
    False: 删除所有重复项
    inplace=False 是否本地修改
    .duplicated() df 返回是否是重复项的bool表示结果
    subset=None 列标签或标签序列, 只考虑识别选中列的重复项, 默认所有列
    keep='first' 'first': 除第一次出现外, 标记重复为True
    'last': 除了最后一次出现, 标记重复为True
    False: 将所有重复项标记为True
    .equals() bool other 判断两个df中的元素是否相同, 同位置的nan被识别为相同
    .filter() df 子集查询
    items=None list_like: [index or columns]
    like=None string: 保留含有此字符串的那些 columns or index
    regex=None 使用正则匹配
    axis=None 轴, 默认为columns
    .first() df 基于时间的子集查询
    offset '10D': 表示取出前10天的数据
    .head() df n=5 显示前n条数据
    .idxmax() Series 返回请求轴上最大值对应的索引(或标签)
    axis=0 默认返回每一列最大值对应的索引, 标签作为索引, 查找到的索引作为值
    skipna=True 是否排除空值
    .idxmin() Series 同上不过是最小值
    .last() df 同.first(), 不过是后n天
    .reindex() df 根据新索引/标签返回数据, 原数据中存在的索引/标签对应的值将被返回, 新的索引/标签对应的值默认为nan
    labels=None 新的标签/索引, 根据axis值来定, 默认索引
    index=None 新索引
    columns=None 新标签
    axis=None
    method=None {None, ‘backfill’/’bfill’, ‘pad’/’ffill’, ‘nearest’}: 填充方法
    copy=True 是否返回一个新对象
    level=None 索引/标签级别
    fill_value=nan 缺失值填充
    limit=None 向前或向后填充的连续最大填充次数
    tolerance=None 公差???
    .reindex_axis() df 同 reindex() 不过没有 index 和 columns 参数
    .reindex_like() df 新对象的 索引/标签 同传入的df的 索引/标签 相同
    other 传入的df
    method, copy, limit, tolerance
    .rename() df 更改 索引/标签 名
    mapper=None fun, dict-like: 结合axis使用, 表示 索引/标签
    index=None 更改索引
    columns=None 更改标签
    axis=None
    copy=True 是否生成新对象
    inplace=False 是否本地修改
    level=None 多级索引的操作级别
    .rename_axis() df 同上: mapper, axis=0, copy, inplace
    .reset_index() df 将索引作为df中的一列值
    level=None 多级索引, 操作的索引级别
    drop=False 是否删除索引转换出来的列
    inplace=False 是否本地修改
    col_level=0 如果columns是多级的, 转换出来的列的标签名的级别
    col_fill='' 指定多级索引其它级别的name, None表示重复索引名
    .sample() df 随机返回n个样本
    n=None 返回的项目数, 默认1
    frac=None 返回的百分比, 0.0-1.0, 不能与n同时使用
    replace=False 是否允许重复
    weights=None None: 等概率加权
    Series: 相同索引的被设置为对应权重, 未出现的被设置为0
    random_state=None 随机数种子
    axis=None 轴, 默认为0
    .select() df 返回满足条件的数据
    crit function: 在每个 索引/标签 上调用, 返回 bool 的函数
    axis=0
    .set_index() df 将某些列作为索引
    keys column, [columns], [[跟df等长的其它来源索引]]
    drop=True 是否删除作为索引的那些列
    append=False 是否将列追加到现有索引
    inplace=False 是否本地修改
    verify_integrity=False 是否检查新索引, False会直到需要时再检查
    .tail() df n=5 返回最后n行
    .take() df 返回指定行/列
    indices [int]: 返回指定的那些行/列
    axis=0 行/列
    convert=None 是否允许使用负指数, 默认True, 0.21.0 被取消, 始终允许
    is_copy=True 是否返回原始对象的副本
    **kwargs  
    .truncate()   截取两个 索引/标签 之间的数据
    before=None 截断此值之前的所有数据
    after=None 截断此值之后的所有数据
    axis=None 轴, 默认操作索引
    copy=True 是否拷贝
     缺失数据处理  (转到首行)
    .dropna() df 删除含有na的行(列)
    axis=0
    how='any' {'any', 'all'}
    thresh=None 有效值个数, 有效值低于此值的行(列)被删除
    subset=None list_like. 列(行)标签列表, 只考虑列表中的列(行)
    inplace=False 是否本地修改
    .fillna() df 使用指定方法填充空值
    value=None 标量: 使用此值替换na值
    dict/Series: 对应标签的列按照对应的值填充
    df: 对应为值的值填充对应位置
    method=None {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}
    axis=None {0 or ‘index’, 1 or ‘columns’}
    inplace=False 是否本地修改
    limit=None 每行(列)最大填充次数
    downcast=None  
    **kwargs  
    .replace() df 将to_replace中给出的值替换为value
    to_replace=None str: 字符串精确匹配
    regex: 正则表达式匹配
    list: 若value也是list则需相同长度, 一一对应替换
    dict:
    None:
    value=None 参考.fillna
    inplace=False 是否本地修改
    limit=None 每行(列)最大填充次数
    regex=False True: 将to_replace作为正则表达式解析
    method='pad' {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}
    axis=None {0 or ‘index’, 1 or ‘columns’}
     形状变换, 排序, 转置  (转到首行)
    .pivot() df 重新整形数据(数据透视表), 参考pd.pivot()
    index=None 作为索引的列
    columns=None 作为列标签的列
    values=None 作为值的列
    .reorder_levels() new obj 对对及索引进行重排
    order [str or int]: 按指定顺序对索引进行重排, 不能遗漏和重复
    axis=0 对哪里进行重排
    .sort_values() df 按值排序 0.17.0
    by str or list of str: 在这些列上排序
    axis=0 {0 or ‘index’, 1 or ‘columns’}: 默认按行排序
    ascending=True bool or bools: 是否按升序排序, 如果是bools则长度需和by相同
    inplace=False 是否在本地修改
    kind='quicksort' {‘quicksort’, ‘mergesort’, ‘heapsort’}: 排序算法, 其它算法只支持单列
    na_position='last' {‘first’, ‘last’}: 空值放在开头或结尾(默认放在结尾)
    .sort_index() df 对索引或列标签排序
    axis=0 默认对索引进行排序
    level=None int or level name or list: 需要排序的索引级别
    ascending=True 是否升序排序
    inplace=False 是否本地修改
    kind='quicksort' 排序算法
    na_position='last' {‘first’, ‘last’}: 空值放在开头或结尾(默认放在结尾)
    sort_remaining=True 按指定级别排序后是否对其他级别进行排序(按顺序)
    by=None 无效参数??
    .nlargest() df 对指定列进行降序排序并截取n个, 可结合groupby使用
    n int: 截取的个数
    columns list or str: 指定降序排序的列
    keep='first' {‘first’, ‘last’}: 对于重复值保留第一次(或最后一次)出现的
    .nsmallest() df 同 .nlargest() 不过是升序排序
    .swaplevel() new obj 对指定的两个索引级别进行交换
    i=-2, j=-1 int, string
    axis=0 对index还是对columns执行
    .stack() df/S 索引作为前n级索引, 最后一级columns作为第n+1级索引, 剩余columns作为新columns
    level=-1 int, string, list: 指定堆叠到索引的columns的级别
    dropna=True 是否删除没有有效值的行
    .unstack() df/S 将多级索引拆成新 index 和 columns
    level=-1 int, string, list: 要作为columns的索引级别
    fill_value=None 缺失值填充
    .melt() df 将columns作为某列值
    id_vars=None 作为id的列, 保持不变
    value_vars=None 作为值的列
    var_name=None 默认 'variable' columns名生成的列的列名
    value_name='value' 值列的列名
    col_level=None 如果columns是多级的则使用此指定级别进行操作
    .T df 转置
    .to_panel() Panel 将df转换为 3D 的Panel
    .to_xarray()   ???
    .transpose() df *args, **kwargs 转置
     组合/加入/合并  (转到首行)
    .append() df 追按照列标签进行追加操作, 缺失使用nan填充
    other df
    ignore_index=F 是否不使用索引标签
    verify_integrity=F 是否不允许存在重复索引
    .assign() df 新增列
    **kwargs 列名 = func : 传入df, 返回一列值的函数
    列名 = 标量: 此列值都为此标量
    列名 = list_like : 跟df同长度
    列名 = Series : Series中跟df索引相同的作为新列的值, 缺失nan
    .join() df 新增列
    other df: 列标签不能跟左侧df重复(重复的话需设置suffix)
    Series: 需要有name属性
    list: [df]
    on=None 列名, 与右侧df索引对齐的列而不是索引
    how='left' 'left': 新df的索引参照左侧df
    'right': 新df的索引参照右侧df
    'outer': 新df的索引参照两个df索引的并集
    'inner': 新df的索引参照两个df索引的交集
    lsuffix='' 若列标签重复, 左侧df的标签将被加上后缀
    rsuffix='' 若列标签重复, 右侧df的标签将被加上后缀
    sort=False 是否对结果按照索引排序
    .merge() df 可实现根据左右df某两列的值进行合并
    right df
    how='inner' 参考.join
    on=None 左右两个df都存在的列, 将在此列上合并
    left_on=None 左侧df要与右侧df要对齐的列
    right_on=None 右侧df要与左侧df要对齐的列
    left_index=False 左侧df是否使用索引与右侧对齐
    right_index=False 右侧df是否使用索引与左侧对齐
    sort=False 结果是否按照索引排序
    suffixes=('_x','_y') 重复列后缀
    copy=True 是否生成新对象
    indicator=False 是否显示此行数据来源('left_only', 'right_only', 'both')
    True: 此列标签将被设置为'_merge'
    str: 设置此列标签为此字符串
    validate=None 0.21新增
    .update() df 将左侧df相应列相同索引的值更新为右侧的值, 不存在则保留原值(本地修改)
    other df, 有name属性的Series
    join='left' 无其它取值, 此参数不能被设置为其它值
    overwrite=True 覆盖?????
    filter_func=None  
    raise_conflict=F 若两个df存在同一数据来源, 将报错
     时间序列相关  (转到首行)
           
     绘图  (转到首行)
           
     序列化/IO/转换  (转到首行)
           
     稀疏  (转到首行)   
           
  • 相关阅读:
    委托
    反射
    ADO.net五大对象
    DNS协议详解
    FTP协议详解
    .Net 多线程 异步编程 Await、Async和Task
    AsnycLocal与ThreadLocal
    Angular 6.X CLI(Angular.json) 属性详解
    Angular Npm Package.Json文件详解
    Npm常用命令整理
  • 原文地址:https://www.cnblogs.com/P--K/p/8284167.html
Copyright © 2020-2023  润新知