DataFrame для Python изменяет содержимое в зависимости от длины строки - PullRequest
0 голосов
/ 02 января 2019

У меня есть кадр данных, как показано ниже.

df = pd.DataFrame([111111,123456,12345,234,12,987654],columns=['id'])

, поэтому, если вы посмотрите на строку 3,4,5, длина идентификаторов будет меньше 6

id
111111
123456
12345
234
12
987654

Iхочу преобразовать его в ниже (в основном добавьте нули в передней части, чтобы сделать его длиной шесть)

id
111111
123456
012345
000234
000012
987654

Ответы [ 3 ]

0 голосов
/ 02 января 2019

Использование

df.id.astype(str).str.pad(6,'left','0')
0    111111
1    123456
2    012345
3    000234
4    000012
5    987654
Name: id, dtype: object
0 голосов
/ 02 января 2019

Попробуйте zfill, сначала преобразуйте целые числа в строку dtype, затем используйте строковый метод доступа, затем zfill:

df['id'].astype(str).str.zfill(6)

Выход:

0    111111
1    123456
2    012345
3    000234
4    000012
5    987654
Name: id, dtype: object
0 голосов
/ 02 января 2019

Вы должны изменить тип данных на строку, иначе начальные нули будут обрезаны.Ниже мое решение.Надеюсь, это поможет

df = pd.DataFrame([111111,123456,12345,234,12,987654],columns=['id'])
df = df.astype(str)
df['id'] = df['id'].apply(lambda x: x if len(x)==6 else '0'*(6-len(x))+x)

df:
id
111111
123456
012345
000234
000012
987654
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...