zoukankan      html  css  js  c++  java
  • pandas数组(pandas Series)-(5)apply方法自定义函数

    有时候需要对 pandas Series 里的值进行一些操作,但是没有内置函数,这时候可以自己写一个函数,使用 pandas Series 的 apply 方法,可以对里面的每个值都调用这个函数,然后返回一个新的 Series 

    import pandas as pd
    
    s = pd.Series([1, 2, 3, 4, 5])
    def add_one(x):
        return x + 1
    
    print s.apply(add_one)
    
    # 结果:
    0    2
    1    3
    2    4
    3    5
    4    6
    dtype: int64

    一个栗子:

    names = pd.Series([
        'Andre Agassi',
        'Barry Bonds',
        'Christopher Columbus',
        'Daniel Defoe',
        'Emilio Estevez',
        'Fred Flintstone',
        'Greta Garbo',
        'Humbert Humbert',
        'Ivan Ilych',
        'James Joyce',
        'Keira Knightley',
        'Lois Lane',
        'Mike Myers',
        'Nick Nolte',
        'Ozzy Osbourne',
        'Pablo Picasso',
        'Quirinus Quirrell',
        'Rachael Ray',
        'Susan Sarandon',
        'Tina Turner',
        'Ugueth Urbina',
        'Vince Vaughn',
        'Woodrow Wilson',
        'Yoji Yamada',
        'Zinedine Zidane'
    ])

    把以上Series里的名字从"Firstname Lastname" 转换成 "Lastname, FirstName"

    可以使用apply方法:

    def reverse_name(name):
        name_array = name.split(' ')
        
        new_name = '{}, {}'.format(name_array[1],name_array[0])
        return new_name
    
    print(names.apply(reverse_name))
    0             Agassi, Andre
    1              Bonds, Barry
    2     Columbus, Christopher
    3             Defoe, Daniel
    4           Estevez, Emilio
    5          Flintstone, Fred
    6              Garbo, Greta
    7          Humbert, Humbert
    8               Ilych, Ivan
    9              Joyce, James
    10         Knightley, Keira
    11               Lane, Lois
    12              Myers, Mike
    13              Nolte, Nick
    14           Osbourne, Ozzy
    15           Picasso, Pablo
    16       Quirrell, Quirinus
    17             Ray, Rachael
    18          Sarandon, Susan
    19             Turner, Tina
    20           Urbina, Ugueth
    21            Vaughn, Vince
    22          Wilson, Woodrow
    23             Yamada, Yoji
    24         Zidane, Zinedine
    dtype: object
  • 相关阅读:
    ViZDoom深度预测(Depth Prediction)
    刨根问底U3D---从Profile中窥探Unity的内存管理
    关于Android真机调测Profiler
    初探Stage3D(三) 深入研究透视投影矩阵
    初探Stage3D(二) 了解AGAL
    初探Stage3D(一) 3D渲染基础原理
    unity3d优化总结篇
    Unity数据存储路径总结
    CREATE A ENERGY / HEALTH BAR HUD
    CREATE A LOADING SCENE / SPLASH SCREEN
  • 原文地址:https://www.cnblogs.com/liulangmao/p/9231804.html
Copyright © 2011-2022 走看看