Вероятно, вы этого хотите.
Кроме того, я немного изменил вашу данную таблицу данных, так как имя местоположения, например Eesti, Harju maakond
, является местоположением / местом. Кроме того, вы предоставили 5 заголовков, но 6 столбцов в данных, поэтому я должен это сделать. Вероятно, вам также придется изменить это в своем предыдущем коде, который генерирует эту таблицу, поскольку я думаю, это имя местоположения в Эстонии.
Всегда используйте Pandas для обработки столбцов data.
import pandas as pd # Pandas dataframe (install pandas using pip install pandas)
headers = ['sex', 'age', 'location', 'coronatestanswer', 'date']
datatable = [['N', '25-29', 'Eesti, Harju maakond', 'N', '06.03.2020'],
['N', '35-39', 'Eesti, Harju maakond', 'N', '06.03.2020'],
['N', '40-44', 'Eesti, Saare maakond', 'N', '06.03.2020'],
['N', '35-39', 'Eesti, Tartu maakond', 'N', '06.03.2020'],
['M', '40-44', 'Eesti, Harju maakond', 'N', '06.03.2020']]
df = pd.DataFrame(datatable, columns=headers) # Data frame created from given list of lists
print(df) # Take a look a the organized dataframe in pandas
print(df['age'].value_counts()) # Count frequency of elements in a column
Вывод для печати (df):
sex age location coronatestanswer date
0 N 25-29 Eesti, Harju maakond N 06.03.2020
1 N 35-39 Eesti, Harju maakond N 06.03.2020
2 N 40-44 Eesti, Saare maakond N 06.03.2020
3 N 35-39 Eesti, Tartu maakond N 06.03.2020
4 M 40-44 Eesti, Harju maakond N 06.03.2020
Вывод для подсчета частоты:
35-39 2
40-44 2
25-29 1
Name: age, dtype: int64
Без использования Pandas это даже намного короче. Проблема в том, что если вы хотите, чтобы это было для каждого столбца, тогда код будет просто избыточным и ненужным повторением. Вот почему Pandas - это круто. Python делает задачу проще и эффективнее. :)
Но все равно. Вот код без Pandas
from collections import Counter # Now, Don't shout at me. This is standard library. No need to install anything.
age_list = [datatable[i][1] for i in range(1,len(datatable))] # This is called list comprehension.
print (Counter(age_list)).
Вывод:
Counter({'35-39': 2, '40-44': 2, '25-29': 1})
Счетчик - объект словаря. Если присвоить Counter(age_list)
другой переменной. Вы можете получить доступ к частотам любой возрастной группы в любое время. Примерно так.
age_list = Counter([datatable[i][1] for i in range(1,len(datatable))])
print(age_list['40-44'])
Вывод: 2
, конечно.