Я работал над проблемой, где у нас много столбцов в dataframe pandas, и многие из этих столбцов имеют конечные пробелы. Мой вопрос в том, есть ли лучший способ удалить эти пространства, а не создать динамическую строку (где мы передаем имя столбца в качестве переменной и добавим к ней strip()
), а затем выполним ее для каждого столбца.пробел из всех значений столбцов в pandas
ответ
Без примера не совсем понятно, что вы хотите достичь, но, возможно, следующее поможет:
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.
Да, это то, что я ищу, чтобы избавиться от белых пробелов от значений внутри столбца, только один быстрый вопрос - это подход, масштабируемый к большому набору данных, например, таблица, содержащая 100 столбцов и 100000 строк или строк? – gaurav1207
Лучше всего просто попробовать, но я думаю, что он должен работать нормально; конечно же, зависит от вашего определения масштабируемого. Если ответ решает вашу проблему, не стесняйтесь принимать/повышать его :) – Cleb
Можете ли вы предоставить * любой * вид примера ввода и вывода ...? – blacksite