美文网首页数据分析笔记
Pandas 中如何遍历数据集(for 循环和 apply 函数

Pandas 中如何遍历数据集(for 循环和 apply 函数

作者: ivyleewowo | 来源:发表于2019-03-19 18:53 被阅读0次

    以一个小数据集为例:


    数据集示例.png

    我们想要实现的需求是:将 df 中价格小于 10 的水果价格翻倍。

    1. for 循环

    做到这个项目的同学都有一定的 Python 编程基础,想到遍历,可能最先想到的就是使用 for 循环:

    df1 = df.copy() #为了不混淆效果,每个方法创建一个副本
    
    def func_for(df):
        for index in df.index:
            if df.loc[index, '价格'] <10:
                df.loc[index, '价格'] *= 2
        return df
    
    df1 = func_for(df1)# 这里的 df 是作为参数传入 for_func 函数的
    

    2. 对 dataframe 数据集使用 apply

    axis=1 相当于对 df 中的每一行数据进行函数调用,apply_func 函数的参数是每一行数据

    df2 = df.copy()
    
    def func_df_apply(item):
        if item['价格'] < 10:
            item['价格'] *= 2
        return item
    
    df2 = df2.apply(func_df_apply, axis=1)
    

    3. 对数据集中的列 Series 对象使用 apply

    此时函数内的参数 cost 就是每一个价格

    df3 = df.copy()
    
    def func_series_apply(cost):
        if cost < 10:
            return cost*2
        else:
            return cost
    
    df3['价格'] = df3['价格'].apply(func_series_apply)
    

    4. 结合匿名函数 lambda 使用 apply

    当需要实现的函数功能非常简单时,可以直接使用匿名函数:

    df4 = df.copy()
    df4['价格'] = df4['价格'].apply(lambda x: x*2 if x<10 else x)
    

    更多相关文章推荐

    相关文章

      网友评论

        本文标题:Pandas 中如何遍历数据集(for 循环和 apply 函数

        本文链接:https://www.haomeiwen.com/subject/rqwnmqtx.html