你能告诉我何时使用这些矢量化方法以及基本示例吗?
我看到map
是一个Series
方法,而其他方法都是DataFrame
方法。不过,我对apply
和applymap
方法感到困惑。为什么我们有两种方法可以将函数应用于DataFrame?同样,提供说明用法的简单示例将非常有帮助!
你能告诉我何时使用这些矢量化方法以及基本示例吗?
我看到map
是一个Series
方法,而其他方法都是DataFrame
方法。不过,我对apply
和applymap
方法感到困惑。为什么我们有两种方法可以将函数应用于DataFrame?同样,提供说明用法的简单示例将非常有帮助!
apply
和applymap
。
map
函数只能在Series上使用,不能在DataFrame上使用。apply
可以做 applymap
可以做的任何事情,但是 apply
有额外的选项。axis
和 result_type
,其中 result_type
只在 axis=1
(针对列)时才起作用。df = DataFrame(1, columns=list('abc'),
index=list('1234'))
print(df)
f = lambda x: np.log(x)
print(df.applymap(f)) # apply to the whole dataframe
print(np.log(df)) # applied to the whole dataframe
print(df.applymap(np.sum)) # reducing can be applied for rows only
# apply can take different options (vs. applymap cannot)
print(df.apply(f)) # same as applymap
print(df.apply(sum, axis=1)) # reducing example
print(df.apply(np.log, axis=1)) # cannot reduce
print(df.apply(lambda x: [1, 2, 3], axis=1, result_type='expand')) # expand result
map
函数不应与 Python 的 map
函数混淆。apply
方法和 groupby 的 apply
方法。applymap
在新版本中已被弃用,改名为map
。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.map.html#pandas.DataFrame.map