2017-08-28 34 views
3

假設這樣一個數據:如何使用串行對象中的模式來計算字符串?

>>> data 
       x 
0 [wdq, sda, q] 
1 [q, d, qasd] 
2 [d, b, sdaaaa] 

不知串了多少包含在每個列表a,這意味着我需要這樣一個答案:

>>> data 
       x count_a 
0 [wdq, sda, q]  1 
1 [q, d, qasd]  1 
2 [d, b, sdaaaa]  1 

我怎樣才能做到這一點在Python?

回答

2

假設這是一個pandas.DataFramexlist對象:

df['count_a'] = df['x'].apply(lambda x: sum('a' in e for e in x)) 
+0

如果您投下,請提供反饋。 – AChampion

0

要找出多少String S IN每個List包含字母a,您可以使用以下命令:

l = ['wdq', 'sda', 'qaaa'] 

print(sum([1 for x in l if 'a' in x])) 

此打印如下:

2 
+0

實際上,變量'count_a'並不意味着時間'出現了'。這意味着包含'a'的時間字符串出現 – Garvey

+0

@Garvey我現在明白你問了什麼,這是一個解決方案! –

0
a = ['a', '12asf3', 'sdf'] 
b = ['gfdg5', ' ', 'vag gfd4'] 
c = [' fd4 ', 'sfsa fa', 'df4 a'] 

abc = [a, b, c] 

for mem in abc: 
    counter = 0 
    for str in mem: 
    if 'a' in str: 
     counter += 1 
    print abc.index(mem), mem, counter 

輸出:

0 ['a', '12asf3', 'sdf'] 2 
1 ['gfdg5', ' ', 'vag gfd4'] 1 
2 [' fd4 ', 'sfsa fa', 'df4 a'] 2 
0

你可以試試這個;

for i in my_series: 
    print (i.count('a')) 

這給每個系列的信

相關問題