【问题标题】:Difference between Series.map and Series.apply [duplicate]Series.map 和 Series.apply 之间的区别 [重复]
【发布时间】:2020-12-20 23:43:31
【问题描述】:

我了解map 用于pd.Seriesapply 用于pd.DataFrame,但是mapapply 用于pd.Series 有什么区别?在我看来,他们基本上做同样的事情:

>>> df['title'].map(  lambda value: str(value) + 'x')
>>> df['title'].apply(lambda value: str(value) + 'x')

似乎两者都只是向函数/映射发送一个值。两者之间是否存在实际差异,如果是,那么将是一个显示它的例子吗?或者,这些在应用于pd.Series 时是否可以互换?


供参考,来自文档:

例如map 使用dictapply 使用func,但实际上,它们看起来一样吗?两者都可以使用函数。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    Series.map另见段说Series.apply用于在系列上应用更复杂的功能。

    Series.map如果是一对一关系,可以用字典或一个参数返回一个值的函数来表示。

    Series.apply 可以使用返回多个单个参数的函数(实际上是整个Series)。在这种情况下,Series.apply 的结果将是 DataFrame

    换句话说,您始终可以在使用map 的地方使用apply。如果你将一个字典(比如d)传递给map,你可以传递一个简单的lambda来应用:lambda x: d[x]。但是如果你用applySeries变成DataFrame,那么map就不能用了。

    因此,map 可能会更优化以适用于一对一的转换,因此应尽可能使用而不是 apply

    【讨论】:

    • 另外,索引只能用map不能应用
    猜你喜欢
    • 2016-11-11
    • 2014-08-16
    • 2011-04-08
    • 2012-11-24
    • 2013-06-05
    • 2021-09-29
    • 2020-05-27
    • 2016-03-23
    • 2012-08-11
    相关资源
    最近更新 更多