2014-01-08 1 views
4

Как добавить начальный ноль, чтобы у меня было минимум двухзначных чисел.python pandas add leading zero, чтобы сделать все месяцы 2 цифры

 Week product quantity  Month 
0 201301 coke  1.5   1 
1 201302 fanta  1.7   2 
2 201304 coke  3.6   5 
3 201306 sprite  2.4   10 
4 201308 pepsi  2.9   12 

т.е. преобразовать выше dataframe быть ниже:

 Week product quantity   Month 
0 201301 coke  1.5   01 
1 201302 fanta  1.7   02 
2 201304 coke  3.6   05 
3 201306 sprite  2.4   10 
4 201308 pepsi  2.9   12 

ответ

7

использование map() метод серии с "{:02}".format:

data = """  Week product quantity  Month 
0 201301 coke  1.5   1 
1 201302 fanta  1.7   2 
2 201304 coke  3.6   5 
3 201306 sprite  2.4   10 
4 201308 pepsi  2.9   12 
""" 

import pandas as pd 
import io 

df = pd.read_csv(io.BytesIO(data), delim_whitespace=True) 
df["Month"] = df.Month.map("{:02}".format) 
+0

спасибо, что сделал трюк при применении его к моей файловой системе. – IcemanBerlin

3

В Python 2.7 вы можете отформатировать это значение с помощью

>>> month = 9 
>>> '{:02}'.format(month) 
'09' 

здесь 2 в {: 02} указывает преобразовать введите цифру в 2 символа, префикс «0». Если входная цифра имеет длину 2, эта цифра останется неизменной.

+0

спасибо, но как я могу применить это к dataframe. – IcemanBerlin

+0

какой dataframe? – anuragal

+0

Глядя на ваш предыдущий вопрос, я предлагаю - df ['MonthMax'] = '{: 02}'. Format (pd.DatetimeIndex (df ['LastDayWeek']). Month) – anuragal

0

В версиях Python раньше, чем 2.7, есть Printf стиль форматирования:

>>> month = 9 
>>> '%02d' % month 
'09' 

Смотрите reference для получения дополнительной информации.

Смежные вопросы