Pandas – добавьте ведущие «0» к строковым значениям, чтобы все значения были равны len

У меня есть столбец, code_x . Я преобразовал его в .astype(str) . Некоторые примерные значения: 45362.0, 75345.0, 346157.0, 572575.0 . Я бы хотел, чтобы все они были 6 цифр. aka: 045362, 075345, 346157, 572575

Я пытаюсь f3[df3['code_x'].str.len() == 7] = "0" + df3[df3['code_x'].str.len() == 7]['code_x'] следующее, но это не сработает: f3[df3['code_x'].str.len() == 7] = "0" + df3[df3['code_x'].str.len() == 7]['code_x']

Предложения?

3 Solutions collect form web for “Pandas – добавьте ведущие «0» к строковым значениям, чтобы все значения были равны len”

Даже я с @DSM для использования zfill. Но я думаю, что использование lamba делает его намного чище и легко читается.

 In [1]: import pandas as pd In [2]: df = pd.DataFrame([45362.0, 75345.0, 346157.0, 572575.0], columns=['code_x']) In [3]: df.code_x.apply(lambda x: str(int(x)).zfill(6)) Out[3]: 0 045362 1 075345 2 346157 3 572575 Name: code_x, dtype: object 

Примечание. Мы преобразуем заданное значение в int перед преобразованием в строку, чтобы избавиться от «.0» в результатах.

IIUC, вы можете использовать str.zfill что означает, что вам не придется иметь специальный случай по длине:

 In [16]: ser Out[16]: 0 45362 1 75345 2 346157 3 572575 dtype: float64 In [17]: ser.astype(str).str.zfill(8) Out[17]: 0 045362.0 1 075345.0 2 346157.0 3 572575.0 dtype: object 

Вы можете использовать метод Series.str.rjust для правильного выравнивания строковых значений и использования 8 в качестве длины и 0 качестве значения заполнения. Пример –

 df3['code_x'] = df3['code_x'].astype(str).str.rjust(8,'0') 

Демо –

 In [65]: df Out[65]: A 0 blah 1 supbla 2 a In [69]: df['A'].str.rjust(6,'0') Out[69]: 0 00blah 1 supbla 2 00000a Name: A, dtype: object 
  • Форматирование строки Python - старое `%` vs new `str.format`
  • Потенциальные исключения с использованием встроенного типа str () в Python
  • Как записать строковый столбец строки данных python, если он имеет отсутствующие значения?
  • Python positive-lookbehind split variable-width
  • Почему Python интерпретирует эту строку как словарь при форматировании?
  • TypeError: не может использовать шаблон строки для объекта с байтом
  • Как я могу использовать Python NLTK для определения совпадений между одиночными символами?
  • Найти различную реализацию слова в строке предложения - Python
  • Невозможно получить raw_input, чтобы вернуть число
  • бинарный для строки, лучше, чем словарь?
  • строка байта и строка unicode. питон
  • Python - лучший язык программирования в мире.