pandas map, applymap and apply的用法和区别

最近又去pandas官网复习了map, applymap and apply的用法和区别

1.apply()

df = pd.DataFrame([[4, 9],] * 3, columns=[‘A’, ‘B’])
df
A B
0 4 9
1 4 9
2 4 9

df.apply(np.sqrt)
A B
0 2.0 3.0
1 2.0 3.0
2 2.0 3.0

df.apply(np.sum, axis=0)
A 12
B 27
dtype: int64
df.apply(np.sum, axis=1)
0 13
1 13
2 13
dtype: int64

可以看出,当想让方程作用在一维的向量上时,可以使用apply

// An highlighted blockfhgjfg
In [116]: frame = DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['U', 'O', 'T', 'Or'])

In [117]: frame
Out[117]: 
               b         d         e
U   -0.029638  1.081563  1.280300
O    0.647747  0.831136 -1.549481
T    0.513416 -0.884417  0.195343
Or  -0.485454 -0.477388 -0.309548

In [118]: f = lambda x: x.max() - x.min()

In [119]: frame.apply(f)
Out[119]: 
b    1.133201
d    1.965980
e    2.829781
dtype: float64
var foo = 'bar';


# applymap()
如果想让方程作用于DataFrame中的每一个元素,可以使用applymap().用法如下所示#


In [120]: format = lambda x: '%.2f' % x

In [121]: frame.applymap(format)
Out[121]: 
            b      d      e
U    -0.03   1.08   1.28
O    0.65   0.83  -1.55
T    0.51  -0.88   0.20
Or  -0.49  -0.48  -0.31



map()
map()只要是作用将函数作用于一个Series的每一个元素,用法如下所示
In [122]: frame['e'].map(format)
Out[122]: 
U      1.28
O      -1.55
T      0.20
Or    -0.31
Name: e, dtype: object
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值