Python map(),Apply()哪个能实现这一功能?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python map(),Apply()哪个能实现这一功能?相关的知识,希望对你有一定的参考价值。
请教,
Map()函数和Apply()函数都是通过Lambda 函数赋值一列。但是有一个问题,如何能让lambda函数同时判断一行中的两个单元格同时满足条件,然后再通过 Apply()赋值
当apply的参数axis传1时,fn接收到的参数是一行的数据,这是一个Series。
因此可以定义fn:
fn = lambda x: 1 if x[0]>3 and x[1]>10 else 0
t = df.apply(fn, axis=1)
print(t) 参考技术A apply不是python原生函数,你说的可能是pandas中的apply方法。
当apply的参数axis传1时,fn接收到的参数是一行的数据,这是一个Series。
因此可以定义fn:
fn = lambda x: 1 if x[0]>3 and x[1]>10 else 0
t = df.apply(fn, axis=1)
print(t) 参考技术B 在Python中如果想要对数据使用函数,可以借助apply(),applymap(),map() 来应用函数,括号里面可以是直接函数式,或者自定义函数(def)或者匿名函数(lambad) import...追问
请问怎么在实现双重条件判断,然后根据判断的结果再赋值。谢谢
unordered_map: find() 和 count() 哪个更快?
【中文标题】unordered_map: find() 和 count() 哪个更快?【英文标题】:unordered_map: which one is faster find() or count()? 【发布时间】:2013-01-04 15:09:04 【问题描述】:判断unordered_map
容器是否包含具有指定键的项目的最快方法是什么?
【问题讨论】:
【参考方案1】:它们的性能大致相同。您应该使用最能表达您想要做的事情的算法。
为了详细说明,通常count()
将使用find()
实现。例如libcxx中,count()
实现为return (find(__k) != end());
【讨论】:
【参考方案2】:find()
和 count()
适用于 C++ 中的许多容器。
对于地图、集合等,find()
将始终具有恒定的执行时间,因为它只是计算哈希,并返回一个迭代器到找到的第一个元素(end()
,如果没有找到)。
另一方面,count()
具有恒定的执行时间 O(e),其中 e 是找到提供的密钥的次数。最坏的情况是所有成员都相同的集合,因此count()
的复杂度可能为 O(n)
map
或 unordered_map
不允许重复,因此它们的渐近运行时间相同。
选择取决于代码中的语义。如果您只想检查密钥是否存在,您可以使用count
。如果您想检查某个键是否存在并使用它的值,请选择find
,因为您已经有一个指向该元素的迭代器。
【讨论】:
这不是真的。你是说find()
会返回一个指针,即使实际搜索的值不存在,但它存在哈希冲突。
一个更好的反对意见是“总是有恒定的执行时间”是不正确的,因为这是摊销和最好的情况,但在最坏的情况下,查找可能是线性时间,即它倾向于这样哈希冲突的比例增加。另一个更迂腐的反对意见是,这仅适用于 无序 映射和集合;那些没有因此装饰的东西是有序的并且(通常)更慢。【参考方案3】:
C++20 通过提供contains
方法结束了这一困境,它仍然具有相同的性能,但直接说出了你的意思。
【讨论】:
以上是关于Python map(),Apply()哪个能实现这一功能?的主要内容,如果未能解决你的问题,请参考以下文章
python 内置函数之lambda-filter-reduce-apply-map
[转]Python 中的 lambda,filter,map,reduce,apply
callapplybind 的区别?call 和 apply 哪个性能会更好?如何实现 callapplybind?
unordered_map: find() 和 count() 哪个更快?