Предположим, что такие данные:

>>> 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?

3
Garvey 28 Авг 2017 в 04:44

4 ответа

Лучший ответ

Предполагая, что это pandas.DataFrame, а x это list объект:

df['count_a'] = df['x'].apply(lambda x: sum('a' in e for e in x))
2
AChampion 28 Авг 2017 в 02:05
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
Bui Anh Tuan 28 Авг 2017 в 01:57

Чтобы узнать, сколько String в каждом List содержит букву a, вы можете использовать следующее:

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

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

Это напечатает следующее:

2
0
Jacob G. 28 Авг 2017 в 02:04

Вы можете попробовать это;

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

Это дает каждому ваше письмо серии

1
Axis 28 Авг 2017 в 02:25