数据分析笔记

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

2019-03-19  本文已影响0人  ivyleewowo

以一个小数据集为例:


数据集示例.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)

更多相关文章推荐

上一篇 下一篇

猜你喜欢

热点阅读