首页 > 其他分享 >map和applymap及apply的区别

map和applymap及apply的区别

时间:2023-04-13 10:22:07浏览次数:45  
标签:map applymap DataFrame sso user func apply

map和applymap及apply的区别

1. 数据

import pandas as pd
import numpy as np

frame = pd.DataFrame(np.random.rand(4, 3), columns = list('abc'), index = ['Utah', 'Ohio', 'Texas', 'Oregon'])
print(frame)
# 输出如下:
#                a         b         c
# Utah    0.443188  0.919623  0.550259
# Ohio    0.013923  0.557696  0.723975
# Texas   0.865469  0.720604  0.081306
# Oregon  0.506174  0.212421  0.061561

2. apply()

apply()是pandas里DataFrame的函数,可以针对DataFrame中的行数据或列数据应用操作。

注意:这里的apply是应用到每一行或者每一列操作,有专门的axis可以指定,默认是axis=0.

func = lambda x: x.max() - x.min()
print(frame.apply(func))
# 输出如下:
# a    0.851545
# b    0.707202
# c    0.662415
# dtype: float64

# --------------------------
df_im_data.loc[:,["from_user", "to_user"]].head()

#           from_user   to_user
#   id		
# 1094736	sso-1361713	tuliu001
# 1094737	tuliu001	sso-1361713
# 1094738	sso-1367729	sc-1131
# 1094739	sso-1250193	tuliu002
# 1094741	sso-1367729	tuliu002

def get_two_user_code(user1, user2):
    s = [user1, user2]
    l = sorted(s)
    code = "@".join(l)
    return code
    
c = df_im_data.loc[:,["from_user", "to_user"]].apply(lambda x: get_two_user_code(x[0], x[1]), axis=1)

# id
# 1094736    sso-1361713@tuliu001
# 1094737    sso-1361713@tuliu001
# 1094738     sc-1131@sso-1367729
# 1094739    sso-1250193@tuliu002
# 1094741    sso-1367729@tuliu002
# dtype: object

3. applymap()

apply()是pandas里DataFrame的函数,但是它对DataFrame中所有的元素应用操作。

func = lambda x: f'{x:.2f}%'
print(frame.applymap(func))

# 输出如下:
#             a      b      c
# Utah    0.34%  0.43%  0.67%
# Ohio    0.75%  0.50%  0.14%
# Texas   0.68%  0.28%  0.90%
# Oregon  0.05%  0.86%  0.78%

4. map()

只能直接对序列元素的操作,所以必须对DataFrame的某列 (只针对于列) 应用操作。

func = lambda x: f'{x:.2f}%'
print(frame['a'].map(func))
# 输出如下:
# Utah      0.65%
# Ohio      0.90%
# Texas     0.09%
# Oregon    0.72%
# Name: a, dtype: object

标签:map,applymap,DataFrame,sso,user,func,apply
From: https://www.cnblogs.com/matrioc/p/17312467.html

相关文章

  • 为什么HashMap的key允许空值,而Hashtable却不允许
    结论:HashMap对象的key、value值均可为null。      Hashtable对象的key、value值均不可为null。且两者的的key值均不能重复,若添加key相同的键值对,后面的value会自动覆盖前面的value,但不会报错。1.从源码分析HashMap从源码分析:  HashMap在put的时候会调用hash()......
  • Rust中的迭代器的使用:map转换、filter过滤、fold聚合、chain链接
    什么是迭代器Rust中的迭代器是一种强大的工具,它提供了一种灵活、通用的方法来遍历序列。迭代器是实现了Iteratortrait的类型,并需要至少实现一个next函数,用于让迭代器指向下一个迭代对象,并返回一个Option用于指示对象是否存在。fnnext(&mutself)->Option<Self::Item>;迭......
  • TreeMap
        ......
  • MultiValueMap在post请求中的使用
    如果data-form的方式处理post,有点区别,做个记录publicStringrobotSpeak(StringspeakMsg){log.info("机器人语音播报请求:{}",speakMsg);//headerHttpHeadersheaders=newHttpHeaders();headers.setContentType(MediaType.A......
  • Map<String, Map<String, String>>转String,再转回Map
    importorg.junit.Test;importjava.util.*;importjava.util.regex.Pattern;/****/publicclassTest2{@Testpublicvoidtest(){Map<String,String>testMap1=newHashMap<String,String>();testMap1.put("k......
  • kubectl create / replace / apply
     使用kubectlcreate命令在Kubernetes里创建这个Deployment对象:kubectlcreate-fnginx.yaml 当我们想要修改镜像的时候,除了使用kubectledit/kubectlsetimage,我们还可以使用修改nginx.yaml文件。然后使用kubectlreplace来触发更新。 #对于这种先kube......
  • vue map 从一组对象中得到一个新的对象
    示例数据:letlist=[{id:1,name:"张三"},{id:2,name:"李四"}]1、使用map 取name属性得到一个string数组letarr= list.map(pro=>pro.name);2、使用map得到一个新的对象集合letarr=list.map(pro=>({lable:pro.name,value:pro.id})) ......
  • 简单的nmap扫描脚本
    简单的nmap扫描脚本下载链接:https://github.com/baimao-box/nmapscan/tree/main一次扫描命令解释:二次扫描命令解释:总结用这个脚本扫描时,比较隐蔽和快速,二次扫描时,扫描的端口信息也很详细。一次扫描时只需要输入目标ip即可,二次扫描时只输入要扫描的端口即可。扫描后的文件的存储位......
  • MyBatis中XXMapper示例记录
    XXMapper.xml的结构示例如下,包括<resultMap>、<id>、<result>、<select>、<update>、<foreach>、<if>标签的使用:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper......
  • MapStruct使用说明
    目录1、简介2、构建2.1、ApacheMaven3、定义映射器3.1、基本映射器3.2、表达式3.3、自定义方法3.4、多个源对象3.4.1、源数据来源多个对象3.4.2、源数据来源普通参数3.5、嵌套对象属性3.6、更新bean实例3.7、public访问权限修饰符修饰的成员3.8、生成器3.9、构造器3.10、映射Map......