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 
  • Как сохранить арабский текст в базе данных mysql с помощью python?
  • Почему «new_file + = строка + строка» намного быстрее, чем «new_file = new_file + line + string»?
  • преобразовать строку в dict, используя понимание списка в python
  • Проверьте строку, если это Юникод, какой стандарт UTF и длина его в байтах?
  • эффективно заменить плохие символы
  • Как проверить, является ли исходный ввод целочисленным в python 2.7?
  • Импорт переменных timeit.timeit в python
  • struct.error: unpack требует строкового аргумента длиной 2
  • Python - лучший язык программирования в мире.