добавить конечные 0 в строку в df.Column в зависимости от длины - PullRequest
0 голосов
/ 04 октября 2018

В поисках метода цепочки для применения к df.

рассмотрите следующий DF.

Store
1
33
455

Я пытаюсь определить длину и добавить0 в зависимости от длины.

Я пробовал простой цикл for, который, как я думал, может работать

for s in df.Store:
  if s.str.len() == 3:
    "0" + s

, однако это не работает.

У меня естьтакже попытался нарезать DF и каждую переменную одну за другой

if df.Store == df[df['Store'].str.len() == 1]:
    "0" + df.Store

, но ни одна из них не работает и просто возвращает пустой вывод.

Я работаю с объектом dtype.

желаемый результат:

Store
0001
0033
0455

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Использовать Series.str.zfill.

При желании можно добавить 0 значения по максимальной длине строки.:

df['Store'] = df['Store'].astype(str)
df['Store'] = df['Store'].str.zfill(df['Store'].str.len().max())
print (df)
  Store
0   001
1   033
2   455

Если хотите добавить 0 по скаляру:

df['Store'] = df['Store'].astype(str).str.zfill(4)
print (df)
  Store
0  0001
1  0033
2  0455
0 голосов
/ 04 октября 2018

Используйте это:

df['Store'] = df['Store'].apply(lambda x: x.zfill(4))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...