Numpy - это замечательно, и обычно у него уже есть одна строка, которая удовлетворяет большинству требований, подобных этому - я думаю, что вы, возможно, захотите ...
np.unique(yourArray, return_counts=True)
Который будет возвращать список уникальных значений и количество раз каждого из них в вашем массиве.
попробовать:
import numpy as np
np.unique(df['type'].values, return_counts=True)
Или, сверните его в диктовке, чтобы вы могли извлечь значения, набранные по значению:
count_dict = dict(zip(*np.unique(df['type'].values, return_counts=True)))
count_dict["healer"]
>> 132
Затем вы можете вставить это в строку формата и (при условии, что вы создаете похожий словарь с именем heals_dict
) сделать что-то вроде:
for k in count_dict.keys():
print ( "the {k} killed {kills} in the 'kills' and had {heals} heals".format(k=k, kills=count_dict[k], heals=heals_dict[k]) )