- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我认为第三个选项应该是去除空格的最快方法?有人可以给我一些在处理大型数据集时应该应用的一般规则吗?我通常使用 .astype(str) 但显然这对于我知道已经是对象的列来说是不值得的。
%%timeit
fcr['id'] = fcr['id'].astype(str).map(str.strip)
10 loops, best of 3: 47.8 ms per loop
%%timeit
fcr['id'] = fcr['id'].map(str.strip)
10 loops, best of 3: 25.2 ms per loop
%%timeit
fcr['id'] = fcr['id'].str.strip(' ')
10 loops, best of 3: 55.5 ms per loop
最佳答案
我们先来看看.map(str.strip)
的区别和 .str.strip()
(第二种和第三种情况)。
因此,您需要了解什么str.strip()
在幕后做:它实际上做了一些 map(str.strip)
,但使用自定义 map
处理缺失值的函数。
所以鉴于 .str.strip()
更多比.map(str.strip)
,预计此方法将始终较慢(正如您所展示的,在您的情况下,速度会慢 2 倍)。
使用 .str.strip()
方法在自动 NaN 处理(或其他非字符串值的处理)方面具有优势。假设“id”列包含一个 NaN 值:
In [4]: df['id'].map(str.strip)
...
TypeError: descriptor 'strip' requires a 'str' object but received a 'float'
In [5]: df['id'].str.strip()
Out[5]:
0 NaN
1 as asd
2 asdsa asdasdas
...
29997 asds
29998 as asd
29999 asdsa asdasdas
Name: id, dtype: object
map(str.strip)
如果您确定没有任何 NaN 值,并且这种性能差异很重要。
fcr['id'].astype(str).map(str.strip)
的另一个区别.如果您已经知道系列中的值是字符串,请执行
astype(str)
调用当然是多余的。正是这个调用解释了差异:
In [74]: %timeit df['id'].astype(str).map(str.strip)
100 loops, best of 3: 10.5 ms per loop
In [75]: %timeit df['id'].astype(str)
100 loops, best of 3: 5.25 ms per loop
In [76]: %timeit df['id'].map(str.strip)
100 loops, best of 3: 5.18 ms per loop
.str.strip()
和
.astype(str).map(str)
不会产生相同的结果:
In [11]: s = pd.Series([' a', 10])
In [12]: s.astype(str).map(str.strip)
Out[12]:
0 a
1 10
dtype: object
In [13]: s.str.strip()
Out[13]:
0 a
1 NaN
dtype: object
.str.strip()
将非字符串值作为 NaN 返回,而不是将它们转换为字符串。
关于python-3.x - Pandas 的 str.strip 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34862336/
如标题所述。我可以使用 strip --strip-all 它将所有符号从 .ko 文件中去除。但是,如果我尝试使用 strip --strip-symbol=symbolname 仅删除一个符号,它
我正在使用 BeautifulSoup 在 Python 中完成抓取任务,但遇到了一些奇怪的错误。它提到了 strip,我没有使用它,但我猜可能与 BSoup 的进程有关? 在我试图转到原始 url
简单的问题。如何在 iReport 中的现有 strip 之间插入细节 strip ?比如我现在的情况: 细节 1 细节2 细节 3 ...我想在细节 2 和细节 3 之间添加另一个细节带。有什么简单
我的 strip 仪表板上不断收到错误代码 400。似乎我不止一次使用相同的 strip 标记,这会产生错误。下面是我的代码。 Js: var handler = Stri
我有一个 Unicode 字符串,在开头和结尾有一些不间断的空格。使用 strip() 与 strip(string.whitespace) 时,我得到不同的结果。 >>> import string
我正在尝试制作许多“小倍数”图。 (旁白/背景)我有太多方面无法在单个图中显示,因此我需要手动将它们划分为单独的图。我希望我能通过想要的 ncol和 nrow至 facet_wrap它会根据我的需要制
我读了很多东西,发现这个配置有两个副作用: 使二进制大小更小 程序显示更好的调试崩溃 我正在为 iOS 构建程序,所以我希望我的二进制文件尽可能小。这个意思: 如果我设置 是 对于这两个配置,我的二进
https://plotly.com/python/strip-charts/ 中的第二个例子显示添加颜色(见下面的屏幕截图),但这也会自动在红色和蓝色点之间创建间距。 如何关闭它?如何确保我的点为分
如果二进制文件大小不是问题,使用 -g 而不是剥离要在性能关键环境中运行的二进制文件是否有任何缺点?我有很多磁盘空间,但二进制文件是 CPU 密集型的并且使用大量内存。二进制文件加载一次并存活数小时。
代码 library(ggplot2) library(dplyr) mydata = tribble( ~x, ~y, ~data, ~more, 0, 50, 'iris', 'this'
“复制期间的条调试符号”和“条链接的产品”选项之间有什么区别? 如果“复制期间的 strip 调试符号” =是,“ strip 链接产品” =否是什么意思? 是否可以将带有符号数据的应用程序上载到Ap
我使用以下代码使用 stripe.createToken 方法为银行帐户创建了一个 token 。 stripe.createToken('bank_account', { country: 'U
我正在尝试安装 imwheel,一个用于 linux 的鼠标配置客户端,当我在尝试安装该软件包时遇到此输出时,作为一个完全的菜鸟被难住了,因为我以前这样做过并且从未遇到过这个问题(我曾经使用 paca
使用 str.strip 可以通过两种方式在空白处进行分割。 。您可以发出不带参数的调用,str.strip(),默认使用空格分隔符,或者自己使用 str.strip(' ')< 显式提供参数。 但是
我正在构建一个蚊子docker镜像,当调用make install时遇到以下错误消息“安装:无法识别的选项:strip-program = strip”,请帮助,谢谢。 install -d /usr
我正在构建我想要生成发布版本的代码。但是,我也希望能够在 cores 崩溃时对其进行调试。 所以我读到可以使用带有调试符号的构建,然后生成运行 strip 的二进制文件的拷贝。然后,您可以使用剥离的二
我使用 TestFlight 进行远程崩溃报告。现在,我正在为此使用 Google Analytics。 TestFlight 建议禁用“复制期间剥离调试符号”和“剥离链接产品”。谷歌分析——没有。我
在将“复制过程中剥离调试符号”设置为"is"的情况下执行存档构建时,我收到警告“跳过复制阶段剥离,二进制代码已签名”。关于此问题,通常建议的线程解决方案是将“复制期间剥离调试符号”设置为“否”。当然可
在现代linux中,几乎所有对象都被剥离并分为两部分(两个文件)。第一个是可执行文件本身,第二个是调试符号,从原始ELF中删除。这样的文件是用 objcopy --only-keep-debug or
我定义了三 Stripe 计划(免费、普通、高级)。当用户想要升级(例如从普通用户到高级用户)时,用户应该使用高级计划获得新订阅。 到目前为止,这是我的代码: subscription = strip
我是一名优秀的程序员,十分优秀!