python中的apply(),map(),agg()等的用法

(1)map()
函数:map(function, iterable, …)
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
function – 函数
iterable – 一个或多个序列注意这里可以是一个或者多个数组成的列表

def f(x):
    return x*x
map(f,[2,3])

在python中返回的是迭代器。
(2)df.applymapp()
结构:DataFrame.applymap(func)
此方法应用一个函数,该函数接受并向数据帧的每个元素返回一个标量。
参考

df = pd.DataFrame([[1, 2.12], [3.356, 4.567]])
df.applymap(lambda x: len(str(x)))

表示会对每一个元素进行func操作。

	0	1
0	3	4
1	5	5

(3)# 在指定轴上使用一个或多个操作进行聚合。
df.agg()等价于df.aggregate()
DataFrame.agg(func, axis=0, *args, **kwargs)

df = pd.DataFrame([[1, 2, 3],
                    [4, 5, 6],
                   [7, 8, 9],
                  [np.nan, np.nan, np.nan]],
                  columns=['A', 'B', 'C'])
df.agg(['sum', 'min'])    
df.aggregate(['sum', 'min'])#等价于df.agg()              

结果:

      A	      B  	C
sum	12.0	15.0	18.0
min	1.0	    2.0 	3.0

参考文档

(4)df.apply()
DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None,
result_type=None, args=(), **kwds)[source]
该函数最有用的是第一个参数,这个参数是函数.
详情请看

df = pd.DataFrame([[4, 9]] * 3, columns=['A', 'B'])
df.apply(np.sqrt)

结果:

	A	B
0	2.0	3.0
1	2.0	3.0
2	2.0	3.0

(5)transform()
df.transform()
DataFrame.transform(func, axis=0, *args, **kwargs)
表示调用函数func,并返回与原数据有相同长度的数据帧,就相当于在元数据上进行函数操作,并返回值
参考

import numpy as np
s = pd.Series(range(3))
s.transform([np.sqrt,np.exp])

结果:

sqrt	exp
0	0.000000	1.000000
1	1.000000	2.718282
2	1.414214	7.389056

猜你喜欢

转载自blog.csdn.net/weixin_43213268/article/details/89033461