你能告诉我什么时候使用这些矢量化方法和基本示例吗?
我看到这map是一种Series方法,而其余的是DataFrame方法。我对apply和applymap方法感到困惑。为什么我们有两种方法可以将函数应用于 DataFrame?同样,说明用法的简单示例会很棒!
map
Series
DataFrame
apply
applymap
docs/stable/reference/api/pandas.Series.map.html),applymap和apply: 上下文很重要
第一个主要区别: 定义
第二个主要区别: 输入参数
dict
第三个主要区别: 行为
第四大区别(最重要的一个): USE CASE
df['A'].map({1:'a', 2:'b', 3:'c'})
df[['A', 'B', 'C']].applymap(str.strip)
df['sentences'].apply(nltk.sent_tokenize)
另请参阅我何时应该(不)想在我的代码中使用 pandasapply()?在一篇文章中,我在最适合使用的场景上做了一段时间apply(请注意,数量不多,但有一些——应用通常 很慢 )。
脚注 map当传递一个字典/系列时,将根据该字典/系列中的键映射元素。缺失值将在输出中记录为 NaN。 2. applymap在最近的版本中已针对某些操作进行了优化。您会发现applymap比apply某些情况下要快一些。我的建议是测试它们并使用更好的方法。 map针对元素映射和转换进行了优化。涉及字典或系列的操作将使 pandas 能够使用更快的代码路径以获得更好的性能。 Series.apply返回用于聚合操作的标量,否则返回 Series。同样对于DataFrame.apply。请注意,apply当使用某些 NumPy 函数(例如 、 等)调用时,它也有快速mean路径 sum。
脚注
2. applymap在最近的版本中已针对某些操作进行了优化。您会发现applymap比apply某些情况下要快一些。我的建议是测试它们并使用更好的方法。
map针对元素映射和转换进行了优化。涉及字典或系列的操作将使 pandas 能够使用更快的代码路径以获得更好的性能。
Series.apply返回用于聚合操作的标量,否则返回 Series。同样对于DataFrame.apply。请注意,apply当使用某些 NumPy 函数(例如 、 等)调用时,它也有快速mean路径 sum。
Series.apply
DataFrame.apply
mean
sum