pandas中Series的apply函数

闲来无事 浏览源码 发现了一个特别有意思的函数
Series中的apply()函数

和大多数apply函数一样,这个函数传入的参数也是一个函数,目的是对传入的series的值进行批量的处理,不用我们手动写函数来处理

举个例子:
我有一个series,大概样子是这样的
在这里插入图片描述
我想要做的就是只要这些日期中的年,我们都知道直接split,之后取第一个就好,
达到的结果是这样
在这里插入图片描述
如果按照常规的方法

def deal_with_date(series_):
    new_date_list = []
    for date_ in list(series_):
        new_date_list.append(date_.split('-')[0])
    return Series(new_date_list)

这样就能实现,但是感觉series应该更强大才对,所以apply方法来了

def squter(x):
    return x.split('-')[0]

是的,你没看错,就这样简单,虽然上述的方法能实现,但还是感觉这个方法更简单,
而且通过函数就能发现,传入的参数就是series的中值,不需要传入series,然后各种转换之类的,
上面这个函数是对series的中值进行处理,下面在调用就ok

series_after_date = series_1.apply(squter)  
print(series_after_date)

apply()中直接传入函数,到此结束,稳得一批

pandasapply函数用于对DataFrame的行或列应用一个函数。它可以接受一个lambda函数表达式或一个自定义函数作为参数,并返回一个新的Series或DataFrame对象。 在引用的官方使用案例apply函数的用法有以下几种情况: 1. 使用通用函数:可以使用numpy的通用函数,如np.sqrt(df),对DataFrame的每个元素进行操作。 2. 使用聚合功能:可以通过指定axis参数为0或1,对DataFrame的行或列进行聚合操作。例如,df.apply(np.sum, axis=0)将对每一列求和。 3. 在每行上返回列表或类似列表的内容:可以使用lambda函数返回一个列表或类似列表的内容,如df.apply(lambda x: [1, 2], axis=1)。 4. 扩展结果到数据的列:可以通过设置result_type参数为'expand',将类似列表的结果扩展到数据的列上,如df.apply(lambda x: [1, 2], axis=1, result_type='expand')。 5. 返回一个序列:可以在函数返回一个序列,并设置序列的索引,生成的列名将是序列索引,如df.apply(lambda x: pd.Series([1, 2], index=['foo', 'bar']), axis=1)。 6. 广播结果:可以通过设置result_type参数为'broadcast',确保函数返回相同形状的结果,并沿轴进行广播。生成的列名将是原始列名,如df.apply(lambda x: [1, 2], axis=1, result_type='broadcast')。 除了官方使用案例外,引用的其他案例也展示了apply函数的应用。例如,在一个DataFrame对各列应用函数,可以使用axis参数设置为0,如df.apply(lambda x: np.sum(x));对各行应用函数,可以使用axis参数设置为1,如df.apply(lambda x: np.sum(x), axis=1)。 总而言之,pandasapply函数可以用于对DataFrame的行或列应用一个函数,可以通过指定不同的参数和设置来实现不同的操作和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值