关键词

对pandas中apply函数的用法详解

让我来为你详细讲解一下“对pandas中apply函数的用法详解”的完整攻略。

1. 什么是apply函数

在pandas中,apply函数是一种非常实用的函数,它可以对pandas的一个列或行进行操作,通常结合lambda表达式一起使用。apply函数的语法如下所示:

DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, result_type=None, args=(), **kwds)
Series.apply(func, convert_dtype=True, args=(), **kwds)

其中:

  • func:需要应用于行或列的函数,可以是lambda函数,也可以是自定义的函数。如果是lambda函数,则可以表达式的形式表示。
  • axis:表示是按行应用函数,还是按列应用函数,0表示按列应用,1表示按行应用。默认值是0。
  • args**kwds:是传递给函数的参数。

2. apply函数的基本用法

2.1 apply函数的基本用法之一

首先,我们创建一个示例数据集:

import pandas as pd

data = {'姓名': ['Alice', 'Bob', 'Charlie', 'Dave'],
        '语文成绩': [78, 94, 88, 77],
        '数学成绩': [84, 81, 72, 87]}
df = pd.DataFrame(data)
print(df)

输出结果为:

        姓名  语文成绩  数学成绩
0    Alice     78     84
1      Bob     94     81
2  Charlie     88     72
3     Dave     77     87

接下来,我们使用apply函数计算每个学生的总分,代码如下所示:

def get_total(row):
    return row['语文成绩'] + row['数学成绩']

df['总分'] = df.apply(get_total, axis=1)
print(df)

输出结果为:

        姓名  语文成绩  数学成绩   总分
0    Alice     78     84  162
1      Bob     94     81  175
2  Charlie     88     72  160
3     Dave     77     87  164

2.2 apply函数的基本用法之二

接下来,我们来看另外一个示例,这个示例中,我们想要对某一列进行数据清洗,将字符串中的字母全部转换成小写字母,代码如下所示:

data = {'姓名': ['Alice', 'Bob', 'Charlie', 'Dave'],
        'Email': ['Alice@Gmail.com', 'Bob@hotmail.com', 'Charlie@qq.com', 'Dave@163.com']}
df = pd.DataFrame(data)

def lowercase_email(email):
    return email.lower()

df['Email_cleaned'] = df['Email'].apply(lowercase_email)
print(df)

输出结果为:

        姓名             Email         Email_cleaned
0    Alice   Alice@Gmail.com   alice@gmail.com
1      Bob  Bob@hotmail.com  bob@hotmail.com
2  Charlie    Charlie@qq.com    charlie@qq.com
3     Dave       Dave@163.com       dave@163.com

由此可见,使用apply函数可以很轻松地对数据进行清洗和转换。

3. 总结

通过以上两个案例,我们可以看到apply函数的基本用法,它可以应用于多种场景并且具有很高的灵活性。在实际的数据处理中,apply函数是一个非常强大的工具。

本文链接:http://task.lmcjl.com/news/17454.html

展开阅读全文