2017-02-14 4 views
0

Я работал над проблемой, где у нас много столбцов в dataframe pandas, и многие из этих столбцов имеют конечные пробелы. Мой вопрос в том, есть ли лучший способ удалить эти пространства, а не создать динамическую строку (где мы передаем имя столбца в качестве переменной и добавим к ней strip()), а затем выполним ее для каждого столбца.пробел из всех значений столбцов в pandas

+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') 

Теперь вам можно использовать map и strip, чтобы избавиться от них:

df.columns = df.columns.map(lambda x: x.strip()) 

или альтернативно

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

или просто (и, вероятно, самое быстрое решение)

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

Если Вы вызываете

df.columns 

он дает

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

Если о значениях a d не заголовки, вы можете также использовать applymap:

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

Лучше всего просто попробовать, но я думаю, что он должен работать нормально; конечно же, зависит от вашего определения масштабируемого. Если ответ решает вашу проблему, не стесняйтесь принимать/повышать его :) – Cleb