zoukankan      html  css  js  c++  java
  • Pandas库学习之三:处理元素

    处理元素

    函数/功能 所属对象函数 作用域
    map Series对象的一个函数 作用于Series对象的每一个函数 单个Series
    apply dataframe dataframe上的任意一列或多列,或者任意一行或者多行 多列或者多行
    applymap dataframe dataframe的所有元素 整个dataframe

    map

    # 1.map(...): map()是Series对象的一个函数,DataFrame中没有map()。
    # map()的功能: 将一个自定义函数作用于Series对象的每个元素。
    # 新增一列,是key2列的元素转变而来。 x = 'k:' + str(x)
    df['new'] = df['key2'].map(lambda x: 'k:' + str(x))
    print(df)
    """
        key1    key2    key3  key4  new
    0   a       one     0     5     k:one
    1   b       two     1     6     k:two
    2   c       three   2     7     k:three
    3   d       four    3     8     k:four
    """
    

    apply

    # 2.apply只是整个dataframe上任意一列或多列,或者一行或多行,
    # 即可在任意轴操作。 在一列使用apply时,跟map效果一样。
    # 多列时只能用apply。
    
    # 需求:计算每行key3和key4的和,并生成新列 total
    df['total'] = df[['key3', 'key4']].apply(lambda x: x.sum(), axis=1)
    print(df)
    '''
        key1   key2  key3  key4      new  total
    0    a    one     0     5    k:one      5
    1    b    two     1     6    k:two      7
    2    c  three     2     7  k:three      9
    3    d   four     3     8   k:four     11
    '''
    
    # 需求:分别计算key3和key4的总和,生成新的total行
    df.loc['total'] = df[['key3', 'key4']].apply(lambda x: x.sum(), axis=0)
    print(df)
    ''' >>> df
        key1   key2  key3  key4      new  total
    0    a    one   0.0   5.0    k:one    5.0
    1    b    two   1.0   6.0    k:two    7.0
    2    c  three   2.0   7.0  k:three    9.0
    3    d   four   3.0   8.0   k:four   11.0
    total  NaN    NaN   6.0  26.0      NaN    NaN
    '''
    

    applymap

    # 3.applymap
    # applymap()函数的功能是将自定义函数作用于DataFrame的所有元素
    def str_format(n):
        return '*' + str(n) + '*'
    df = df.applymap(str_format)
    print(df)
    '''
    key1     key2   key3    key4        new   total
    0        *a*    *one*  *0.0*   *5.0*    *k:one*   *5.0*
    1        *b*    *two*  *1.0*   *6.0*    *k:two*   *7.0*
    2        *c*  *three*  *2.0*   *7.0*  *k:three*   *9.0*
    3        *d*   *four*  *3.0*   *8.0*   *k:four*  *11.0*
    total  *nan*    *nan*  *6.0*  *26.0*      *nan*   *nan*
    '''
    
  • 相关阅读:
    2.java基础语法(上)
    1.java概述
    Qt layout透明的问题
    Duilib 关于ChildLayout崩溃的问题
    关于注册表使用的几个问题
    win32接口获取ping值
    Web开发中遇到的问题
    DuiLib 窗口透明方法
    通过进程名杀死进程的方法--WIN32
    关于在Qt的MainWindow窗口中添加Layout的问题
  • 原文地址:https://www.cnblogs.com/854594834-YT/p/14204474.html
Copyright © 2011-2022 走看看