2017-02-14 6 views
0

私はpandasデータフレームに多くの列があり、これらの列の多くに後続の空白がある問題を解決するために取り組んでいました。私の質問は、動的な文字列を作成するのではなく、変数として列名を渡してstrip()を追加する代わりに、これらのスペースを削除してすべての列に対して実行する方が良い方法です。パンダのすべての列の値を空白にします

+1

入力と出力の例を* *ソートできますか? – blacksite

答えて

0

例がないと、あなたが達成したいものを完全には明らかではないが、多分次のように役立ちます:

import pandas as pd 

df = pd.DataFrame({'A ': [1, 2], 'B ': [4, 5], 'C': [8,9]}) 

列ヘッダーが白末尾のスペースを持っていますか:

df.columns 
Index([u'A ', u'B ', u'C'], dtype='object') 

を今、あなたは

df.columns = df.columns.map(lambda x: x.strip()) 
を使用すると、 mapstripを使用できます。または代わり

df.columns = df.columns.map(str.strip) 

または単に(そしておそらく最速のソリューション)

df.columns = df.columns.str.strip() 

あなたが今

df.columns 

を呼び出した場合、それがある場合、それは

Index([u'A', u'B', u'C'], dtype='object') 

を生み出します値についてヘッダは、あなたもapplymapを使用することができませんd次の

df = pd.DataFrame({'A': ['1', '2 '], 'B': ['4 ', '5 '], 'C': ['8 ','9']}) 

    A B C 
0 1 4 8 
1 2 5 9 

そして、次は、末尾の空白を取り除きます:

df.applymap(lambda x: x.strip()) 

または代わり

df.applymap(str.strip) 

    A B C 
0 1 4 8 
1 2 5 9 

注:これは、想定してい列に文字列しかないことを確認します。 this linkも確認できます。

+0

ええこれは私が探しているのは、列の中の値から空白を取り除くために、このアプローチは大規模なデータセットに100列と100000または行を含むテーブルのようにスケーラブルですか? – gaurav1207

+0

最高のことは試してみることですが、うまくいくはずです。もちろん、スケーラブルの定義にも依存します。答えがあなたの問題を解決したら、/ upvoteを受け入れることを自由に感じてください:) – Cleb

関連する問題