2017-02-21 19 views
2

Здравствуйте, я хочу добавить начальный ноль в мой текущий столбец с str и int, но я не знаю, как это сделать. Я хочу только добавить начальные нули в числа ex: не A111. Данные импортируются из файла csv. Я очень новичок в пандах и питоне.Python добавить начальный нуль в столбец с str и int

например:

Section 
1 
2 
3 
4 
4SS 
15 
S1 
A111 

Преобразовать в:

Section 
01 
02 
03 
04 
4SS 
15 
S1 
A111 
+1

ваши данные строка? или ряд? –

+0

Правило большого пальца: разместите образец кода или, по крайней мере, объясните используемые структуры данных. Эта распечатка не полезна. – user1258361

+1

Посмотрите на 'str.zfill()' –

ответ

4

Вы можете использовать str.zfill:

#numeric as string 
df = pd.DataFrame({'Section':['1', '2', '3', '4', 'SS', '15', 'S1', 'A1']}) 

df['Section'] = df['Section'].str.zfill(2) 
print (df) 
    Section 
0  01 
1  02 
2  03 
3  04 
4  SS 
5  15 
6  S1 
7  A1 

numeric При смешивании с strings первого броска к string:

df = pd.DataFrame({'Section':[1, 2, 3, 4, 'SS', 15, 'S1', 'A1']}) 

df['Section'] = df['Section'].astype(str).str.zfill(2) 
print (df) 
    Section 
0  01 
1  02 
2  03 
3  04 
4  SS 
5  15 
6  S1 
7  A1 
+0

спасибо! Думал, что это сообщение было удалено по какой-то причине – yangd01234

+0

Если мой или другой ответ был полезен, не забудьте [принять] (http://meta.stackexchange.com/a/5235/295067). Благодарю. – jezrael

1

Попробуйте

df['Section'] = df['Section'].apply(lambda x: x.zfill(2)) 

Вы

Section 
0 01 
1 02 
2 03 
3 04 
4 SS 
5 15 
6 S1 
7 A1 
+0

@MaxU, справа. str.zfill() было бы предпочтительнее, чем применить – Vaishali