《利用python进行数据分析》之函数应用和映射

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mr_muli/article/details/84035522
  • 《利用python进行数据分析》之函数应用和映射
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 13 19:50:54 2018

@author: muli
"""

from pandas import Series,DataFrame
import pandas as pd
import numpy as np

#函数应用和映射
#Numpy的ufuncs(元素级数组方法)也可以用于操作pandas对象:
frame=DataFrame(np.random.randn(4,3),
                columns=list('bde'),
                index=['Utah','Ohio','Texas','Oregon'])

print(frame)
# 取绝对值
#print(np.abs(frame))
print("----------------")
#将函数应用到由各列或行所形成的一维数组上。
#DataFrame的apply方法即可实现此功能:
f=lambda x:x.max() - x.min()
# apply()默认是列向量相减
print(frame.apply(f))
print("-------")
# 在行向量中 相减
print(frame.apply(f,axis=1))

print("--------------########------------")
# 除标量外,传递给apply的函数还可以返回由多个值组成的Series:
def f(x):
    return Series([x.min(),x.max()],index=['min','max'])

print(frame.apply(f))
print("---------------------")
# 此外,元素级的python函数也是可以用的。
# 假如想得到frame中各个浮点数的格式化字符串,使用applymap即可:
format=lambda x:'%.2f' %x
print(frame.applymap(format))

# 之所以叫做applymap,
# 是因为Series有一个用于应用元素级函数的map的方法
# 取某一列时,即为Series
print(frame['e'].map(format))
# 也可以是 自建 的Series
series=Series(range(3),index=['b','e','f'])
print(series.map(format))


猜你喜欢

转载自blog.csdn.net/mr_muli/article/details/84035522