首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以更快的速度将填充物用在整个df上。

以更快的速度将填充物用在整个df上。
EN

Stack Overflow用户
提问于 2019-12-24 15:26:13
回答 1查看 304关注 0票数 0

我有一行代码来填充熊猫的数据:

代码语言:javascript
复制
sessions_combined.fillna('na', inplace = True)

这很好,任何空值都会被字符串'na‘替换,这正是我想要的。

然而,它是缓慢的。在我的代码的其他地方,我使用了一个更快的lambda函数,它使用可用的核心并行处理,例如:

代码语言:javascript
复制
import swifter
pages['dimension3'] = pages['dimension3'].swifter.apply(lambda x: my_custom_fun(x))

这在特定的列dimension3上工作得很好。

是否有可能在整个数据帧上使用更快的?试过:

代码语言:javascript
复制
sessions_combined.swifter.apply(lambda x: fillna(x, 'na', inplace = True))

NameError:未定义名称“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-24 16:22:59

看上去并没有提高性能。但我觉得应该是这样的:

代码语言:javascript
复制
import pandas as pd
import numpy as np
import swifter
pdf = pd.DataFrame(np.random.randint(0,100,size=(25000000, 4)),columns=list('abcd'))
pdf["pupa"] = None

然后:

代码语言:javascript
复制
%%timeit
first = pdf.fillna("pupiki")

输出:每环2.46s±12.8ms(平均±std )。dev.7次运行,每一次循环1次)

更快地:

代码语言:javascript
复制
%%timeit
second = pdf.swifter.apply(lambda x: x.fillna("pupiki"))

输出:2.41s±39.5ms/环(平均±std )。dev.7次运行,每一次循环1次)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59470804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档