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
原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~
最后,感谢女朋友在工作和生活中的包容、理解与支持 !