2015-12-24 3 views
5

У меня есть панд DF, который имеет много строковых элементов, которые содержат такие слова, как это:Зачистка всех завершающие пустых пространств в столбце панда dataframe

'Frost        ' 

Который имеет много ведущих пробелов перед из этого. Когда я сравниваю эту строку:

'Frost' 

я понял, что сравнение было Ложными из-за ведущие места.

Хотя я могу решить это, итерации по каждому элементу Pandas DF, процесс медленный из-за большого количества записей, которые у меня есть.

Этот другой подход должен работать, но он не работает:

rawlossDF['damage_description'] = rawlossDF['damage_description'].map(lambda x: x.strip('')) 

Так что, когда я инспектировать элемент:

rawlossDF.iloc[0]['damage_description'] 

Она возвращает:

'Frost        ' 

Что происходит Вот?

ответ

13

Заменить функцию с этим:

rawlossDF['damage_description'] = rawlossDF['damage_description'].map(lambda x: x.strip()) 

Вы чуть было не правильно, вам нужно избавиться от «» внутри полосы()

12

В качестве альтернативы можно использовать str.strip метод:

rawlossDF['damage_description'] = rawlossDF['damage_description'].str.strip() 
+1

Я пробовал это на наборе данных 5M строк, и это занимает в два раза больше времени по сравнению с картой + лямбда – manuvendev