2016-02-22 4 views
7

Я сражаюсь с пандами, и пока я теряю. У меня есть исходная таблица, подобная этой:Получите первую букву строки из колонки

import pandas as pd 

a=pd.Series([123,22,32,453,45,453,56]) 
b=pd.Series([234,4353,355,453,345,453,56]) 
df=pd.concat([a, b], axis=1) 
df.columns=['First', 'Second'] 

Я хотел бы добавить новый столбец в этом фрейм данных с первой цифрой от значений в столбце «Первого»: а) номер изменения в строку из столбца «Первого» b) извлечение первого символа из вновь созданной строки c) Результаты из b сохранить как новый столбец в фрейме данных

Я не знаю, как применить это к объекту фрейма данных pandas. Я был бы признателен за то, что помог мне в этом.

+0

Можете ли вы показать ваш желаемый результат? – IanS

ответ

14

В ролях dtype из седловины к str и вы можете выполнять vectorised нарезка вызова str:

In [29]: 
df['new_col'] = df['First'].astype(str).str[0] 
df 

Out[29]: 
    First Second new_col 
0 123  234  1 
1  22 4353  2 
2  32  355  3 
3 453  453  4 
4  45  345  4 
5 453  453  4 
6  56  56  5 

, если вам нужно вы можете бросить dtype обратно вызова astype(int) на колонке

+0

Для больших массивов литье в строку не является самым быстрым: http://stackoverflow.com/a/13547396/5276797 – IanS

+0

@IanS true, если длина цифры была исправлена, тогда функция 'floordiv' будет работать лучше здесь – EdChum

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