2017-08-28 39 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')) 

这给每个系列的信

相关问题