Pandas 可直接使用 NumPy 的 ufunc(元素级数组法) 函数:
>>>importpandasaspd >>>importnumpyasnp >>>obj=pd.DataFrame(np.random.randn(5,4)-1) >>>obj 0123 0-0.2281071.377709-1.096528-2.051001 1-2.477144-0.500013-0.040695-0.267452 2-0.485999-1.232930-0.390701-1.947984 3-0.839161-0.702802-1.756359-1.873149 40.853121-1.5401050.621614-0.583360 >>> >>>np.abs(obj) 0123 00.2281071.3777091.0965282.051001 12.4771440.5000130.0406950.267452 20.4859991.2329300.3907011.947984 30.8391610.7028021.7563591.873149 40.8531211.5401050.6216140.583360
函数映射:在 Pandas 中 apply 该方法可以通过设置将函数应用到列或行上 axis 指定行或列的参数,默认 axis = 0,即按列映射:
>>>importpandasaspd >>>importnumpyasnp >>>obj=pd.DataFrame(np.random.randn(5,4)-1) >>>obj 0123 0-0.707028-0.755552-2.196480-0.529676 1-0.7726680.127485-2.015699-0.283654 20.248200-1.940189-1.068028-1.751737 3-0.872904-0.465371-1.327951-2.883160 4-0.0926640.258351-1.010747-2.313039 >>> >>>obj.apply(lambdax:x.max()) 00.248200 10.258351 2-1.010747 3-0.283654 dtype:float64 >>> >>>obj.apply(lambdax:x.max(),axis=1) 0-0.529676 10.127485 20.248200 3-0.465371 40.258351 dtype:float64
另外还可以通过 applymap 将函数映射到每个数据上:
>>>importpandasaspd >>>importnumpyasnp >>>obj=pd.DataFrame(np.random.randn(5,4)-1) >>>obj 0123 0-0.772463-1.597008-3.196100-1.948486 1-1.765108-1.646421-0.687175-0.401782 20.275699-3.115184-1.429063-1.075610 3-0.251734-0.448399-3.077677-0.294674 4-1.495896-1.689729-0.560376-1.808794 >>> >>>obj.applymap(lambdax:'%.2f'%x) 0123 0-0.77-1.60-3.20-1.95 1-1.77-1.65-0.69-0.40 20.28-3.12-1.43-1.08 3-0.25-0.45-3.08-0.29 4-1.50-1.69-0.56-1.81
更多Python知识,请关注Python视频教程!!