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

原文地址:https://www.cnblogs.com/liulangmao/p/9231804.html

时间: 2024-11-08 23:31:57

pandas数组(pandas Series)-(5)apply方法自定义函数的相关文章

pandas数组(pandas Series)-(4)NaN的处理

上一篇pandas数组(pandas Series)-(3)向量化运算里说到,将两个 pandas Series 进行向量化运算的时候,如果某个 key 索引只在其中一个 Series 里出现,计算的结果会是 NaN ,那么有什么办法能处理 NaN 呢? 1.  dropna() 方法: 此方法会把所有为 NaN 结果的值都丢弃,相当于只计算共有的 key 索引对应的值: import pandas as pd s1 = pd.Series([1, 2, 3, 4], index=['a', '

pandas数组(pandas Series)-(2)

pandas Series 比 numpy array 要强大很多,体现在很多方面 首先, pandas Series 有一些方法,比如: describe 方法可以给出 Series 的一些分析数据: import pandas as pd s = pd.Series([1,2,3,4]) d = s.describe()print(d) count 4.000000 mean 2.500000 std 1.290994 min 1.000000 25% 1.750000 50% 2.5000

Effective JavaScript Item 21 使用apply方法调用函数以传入可变参数列表

本系列作为Effective JavaScript的读书笔记. 下面是一个拥有可变参数列表的方法的典型例子: average(1, 2, 3); // 2 average(1); // 1 average(3, 1, 4, 1, 5, 9, 2, 6, 5); // 4 average(2, 7, 1, 8, 2, 8, 1, 8); // 4.625 而以下则是一个只接受一个数组作为参数的例子: averageOfArray([1, 2, 3]); // 2 averageOfArray([1

pandas数组(pandas Series)-(3)向量化运算

这篇介绍下有index索引的pandas Series是如何进行向量化运算的: 1. index索引数组相同: s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) s2 = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']) print s1 + s2 a 11 b 22 c 33 d 44 dtype: int64 直接把各个索引对应的值进行相加 2. index索引数组值

Javascript.03 -- 数组、简单的逻辑、自定义函数

除了注意大小写,别的木啥了 Switch语句 Switch(变量){ case 1: 如果变量和1的值相同,执行该处代码 break; case 2: 如果变量和2的值相同,执行该处代码 break; case 3: 如果变量和3的值相同,执行该处代码 break; default: 如果变量和以上的值都不相同,执行该处代码 break; } switch后边的变量和case后边值的数据类型必须保持一致. Switch语句可以对变量进行集体判断: 自增自减 i++  ++i ◆在不参与运算的情况

关于JS中apply方法的基本理解

最近研究OpenLayers源码时,发现其中使用了比较多的apply方法,对其也是很不明白.于是上网经过多方面了解以及自己细细体会后,终于算是基本明白是其干什么的了,这里分享下.apply方法的造型是这样的,Function.apply(obj,args) 能接收两个参数:obj:这个对象将代替Function类里this对象args:这个是数组,它将作为参数传递.按网上大牛的解释是apply:劫持另外一个对象(a)的方法,继承a的属性.为了进一步理解,我自己做了下小例子,如下: (functi

学习pandas apply方法,看这一篇就够了,你该这么学,No.10

最近好忙啊,好忙啊,忙的写不动博客了 时间过得飞快 一晃,一周就过去了 本着不进步就倒退的性格 我成功的在技术上面划水了一周 今天要学习的还是groupby的高级进阶 说是高级,其实就是比初级复杂了一些 有点绕,然后不容易明白 就成为高级了 其实对于pandas来说 应该还是基础部分 我们今天要学习的就是 自定义更丰富的分组运算 apply 方法 apply方法的价值 对于有些数据类型来说 是的,有些 agg与transform 不是很适合 所以就会出现apply方法 不过哪些不适合,我们要慢慢

pandas DataFrame和Series

Pandas入门-Series和DataFrame 概述:pandas含有使数据分析工作变得更快更简单的高级数据结构和操作工具,pandas是基于Numpy构建的.pandas在过去的几年中逐渐成长为一个非常强大的库. pandas的数据结构介绍 引入pandas >>> from pandas import Series,DataFrame >>> import pandas as pd pandas有两个主要的数据结构:Series和DataFrame. Serie

在PyODPS DataFrame自定义函数中使用pandas、scipy和scikit-learn

背景PyODPS DataFrame 提供了类似 pandas 的接口,来操作 ODPS 数据,同时也支持在本地使用 pandas,和使用数据库来执行. PyODPS DataFrame 除了支持类似 pandas 的 map 和 apply 方法,也提供了 MapReduce API 来扩展 pandas 语法以适应大数据环境. PyODPS 的自定义函数是序列化到 MaxCompute 上执行的,MaxCompute 的 Python 环境只包含了 numpy 这一个第三方包,用户常常问的问