我在Python中有一个命令行程序需要一段时间才能完成.我想知道完成跑步所需的确切时间.
我看过这个timeit模块,但它似乎只适用于小代码片段.我想要整个计划的时间.
这是一个自我回答的QnA,旨在指导用户应用的缺陷和好处.
我已经看到很多关于Stack Overflow问题的答案涉及使用apply.我也看到用户评论他们说" apply很慢",应该避免".
我已经阅读了很多关于性能主题的文章,解释apply很慢.我还在文档中看到了一个关于如何apply简单地传递UDF的便利函数的免责声明(现在似乎无法找到).因此,普遍的共识是,apply如果可能,应该避免.但是,这引发了以下问题:
apply是如此糟糕,那为什么它在API中呢?apply- 免费?apply是不错的(比其他可能的解决方案更好)?我有一个数据帧,其中包含一个由 0 和 1 组成的热编码列,其类型为 dtype int32。
a b h1 h2 h3
xy za 0 0 1
ab cd 1 0 0
pq rs 0 1 0
Run Code Online (Sandbox Code Playgroud)
我想将 h1、h2 和 h3 列转换为布尔值,所以这就是我所做的..
df[df.columns[2:]].astype(bool)
Run Code Online (Sandbox Code Playgroud)
但这将 h1-h3 的所有值更改为TRUE。
我也尝试过
df[df.columns[2:]].map({0:False, 1:True})
Run Code Online (Sandbox Code Playgroud)
但这也不起作用。(属性错误:“DataFrame”对象没有属性“map”)
int32将数据帧的特定列从0 和 1 转换为布尔值 ( True/ )的最佳方法是什么False?