私は3番目のオプションが空白を取り除く最速の方法であると考えていたと思いますか?大規模なデータセットを扱うときに私が適用すべきいくつかの一般的なルールを誰かに教えてもらえますか?私は通常.astype(str)を使用していますが、すでにオブジェクトであることがわかっている列に対しては意味がないことは明らかです。 .map(str.strip)
と.str.strip()
との差(第二及び第三のケース)でパンダのためのstr.stripのパフォーマンス
%%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
[github](https://github.com/pydata/pandas/issues)に質問する価値があるかもしれません。なぜこれが当てはまるのでしょうか? – EdChum
これはちょっといい相対的な減速の原因となっているものを最初にプロファイリングする。一般的には、パンダの '.str'メソッドはすべて1.)正規表現や文字列を取るので、最後の2つは等価ではありません。2.)NaNを壊さずに処理します。おそらく、それらのオーバーヘッドがどのように見えるかを見てください。 – TomAugspurger
@TomAugspurger私は単純な30k行のテストを行った:df = pd.DataFrame({'id':['asds'、 'asd asdasdas']}) df = pd.concat([ df] * 10000、ignore_index = True) 'で、OP – EdChum