Pandas数据分析面试基础题(十四)

437 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

试题:如何对 DataFrame 数据使用自定义函数?

(难度:medium)

分析 如果想要对 Dataframe 数据应用自定义的函数,或者其他库中的函数,有如下方法:

  • pipe():操作整个 Dataframe 对象。
  • apply():操作行或者列。
  • applymap():操作单一元素。

可以根据要操作的对象选择合适的函数,具体使用方法如下。

pipe()操作整个 Dataframe

pipe()函数接收一个自定义函数和适当数量的参数值,具体使用方法如下。 下面的代码实现 Dataframe 中的元素值依次加上指定的值:

import pandas as pd

# 首先定义一个函数,计算两个元素的和
def self_add(a, b):
    return a + b

data = pd.DataFrame({
         'A':[1,2,3,4,5],
         'B': [2,3,4,5,6],
         'C':[3,4,5,6,7]})
# 调用pipe函数,传入自定义函数及要相加的数值5
data = data.pipe(self_add, 5)
print(data)

结果输出如下:

    A   B   C
0   6   7   8
1   7   8   9
2   8   9  10
3   9  10  11
4  10  11  12

可见,Dataframe 数据每个元素都加了5。

apply()操作行或列

操作 DataFrame 数据的某行或者某列,可以使用apply()方法,该方法默认按列操作,设置axis=1表示按行进行操作,示例如下:

import numpy as np

# 计算每一列均值
print(data.apply(np.mean))
# 计算每一行均值
print(data.apply(np.mean, axis=1))

结果输出如下:

A    3.0
B    4.0
C    5.0
dtype: float64
0    2.0
1    3.0
2    4.0
3    5.0
4    6.0
dtype: float64

applymap()操作单一元素

如下所示:

# 每个元素都乘以100
print(data.applymap(lambda x: x * 100))

结果输出如下:

     A    B    C
0  100  200  300
1  200  300  400
2  300  400  500
3  400  500  600
4  500  600  700

原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~

最后,感谢女朋友在工作和生活中的包容、理解与支持 !