Python批量处理方法

# 5种利用自定义函数批量处理元素方法介绍

# 导入相关的库和包
import numpy as np
import pandas as pd
from pandas import DataFrame, Series
#1.python内置的map函数

lst = [1,2,3]
f = lambda x: x * 10
lst2 = list(map(f, lst))
np.disp(lst2) # 显示元素
[10, 20, 30]
#2.Series中的map函数
# 和python中的map相似 只不过输入Series的一个方法

series = Series([1,2,3])
f2 = lambda x: "%.2f" %x
np.disp(series.map(f2)) # 设置格式 
0    1.00
1    2.00
2    3.00
dtype: object
#3.Series中的apply函数
# 自由度更高的一种
np.disp(series.apply(f2))
0    1.00
1    2.00
2    3.00
dtype: object
#4.DataFrame中的apply函数
"""
func:传入的函数,多为自定义的lambda函数
axis:可以指定对行或者列的操作 默认为沿着行的方向(axis='index'/0)
raw:以Series的方式传入False(default)还是转换成ndarray(True)再传入
"""
frame = pd.DataFrame(np.arange(12.).reshape((4, 3)),
                    columns=list('bde'),
                    index=['Utah', 'Ohio', 'Texas', 'Oregon'])
frame.apply(lambda x: min(x), axis='index', raw=True) # 计算每列的最小值
# 其返回值不一定是一个标量 也可以生成一个dataframe 但要构建新的Series
def f(x):
    return pd.Series([x.min(), x.max()], index=['min', 'max'])
frame.apply(f, axis=0) # 对每一个列都返回一个Series 索引为行
bde
min0.01.02.0
max9.010.011.0
#5.DataFrame中的applymap函
"""
为了和Series中的map区别开 applymap是元素级函数 操作frame中的每个元素
在函数定义时 就不再是apply那样以一个Series传入了 而是一个single value
在定义函数时要注意不要使用sum、min等这样只针对Series适用的函数
"""
frame.applymap(lambda x: '%.2f' %x) # 逐元素操作
bde
Utah0.001.002.00
Ohio3.004.005.00
Texas6.007.008.00
Oregon9.0010.0011.00
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值