2015-05-21 4 views
0

, поэтому у меня есть dataframe со столбцом «dname». Он содержит много строк доменных имен 2LD. т.е. [123ask , example92 , what3ver].Python. Вычислить сумму числовых символов для каждой строки в dataframe

Я хочу найти количество цифр для каждой строки в каждой строке.

Итак, чтобы создать новый столбец в dataframe со значениями, то есть [3 , 2 , 1].

у меня есть:

df['numeric']= sum (x.isdigit() for b in df['dname'] for x in b) 

И все я получаю 6 6 6 вместо 3 2 1

Любая помощь? Заранее спасибо!

+0

Вы подводим '3 2 1 ' –

+0

добавлен тег«Панды», потому что плакат использует панд пакет питона – JohnE

ответ

1

Вы почти имели его.

df = {'dname':["123ask", "example92" , "what3ver"]} 
df['numeric'] = [sum (x.isdigit() for x in b) for b in df['dname']] 
print df['numeric'] 
#>>> [3, 2, 1] 
0
df['numeric']= df['dname'].apply(lambda v : sum(x.isdigit() for x in v)) 

Это будет применять требуемую операцию для всех строк и значительно быстрее

+0

Это дает' AttributeError: «список» объект не имеет атрибута «apply'' –

+0

ФР [» DNAME '] должен быть серией, а не списком –

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