2015-05-21 96 views
0

因此我有一個帶有「dname」列的數據框。 它包含許多行的2LD域名。即[123ask , example92 , what3ver]Python-計算數據幀中每個字符串的數字字符總和

我想查找每行中每個字符串的位數。

因此,要在數據框中創建一個新列,其值爲[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

添加 '大熊貓' 的標籤,因爲海報使用Python熊貓包 – 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

DF [' DNAME ']應該是一個系列,而不是一個列表 –

相關問題