Swfiter是一个库,它“以最快的可用方式将任何函数应用到 Pandas DataFrame(数据框)或Series(序列)。”。
Swfiter安装
Swifter安装
swifter用pip直接安装即可,很方便。
$ pip install -U pandas # upgrade pandas
$ pip install swifter # first time installation
$ pip install -U swifter # upgrade to latest version if already installed```
当然,也可以用Anaconda安装:
conda install -c conda-forge swifter
一个简单de例子
df = pd.DataFrame({'x': [1, 2, 3, 4], 'y': [5, 6, 7, 8]})
# runs on single core
df['x2'] = df['x'].apply(lambda x: x**2)
# runs on multiple cores
df['x2'] = df['x'].swifter.apply(lambda x: x**2)
# use swifter apply on whole dataframe
df['agg'] = df.swifter.apply(lambda x: x.sum() - x.min())
# use swifter apply on specific columns
df['outCol'] = df[['inCol1', 'inCol2']].swifter.apply(my_func)
df['outCol'] = df[['inCol1', 'inCol2', 'inCol3']].swifter.apply(my_func,
positional_arg, keyword_arg=keyword_argval)
参考链接:
Pandas中Apply函数加速百倍的技巧。
swifter-github
pandas - 使用swfiter一行代码加速DataFrame