Actually, I have a dataset about a "meeting". For example, A,B,C have a meeting, then the list would be [A,B,C]. Like this, each list would contain a list of members who participated in the meeting. Therefore:
line1= (A,B,C)
line2= (A,C,D,E)
line3 = (D,F,G)
...
I just would like to count the number how many times each pair of members meet each other. For example, member A meets C two times from line1 and line2 and member B meets C one time from line1. So, I would like to make a chart like this..
A B C D E F G...
A . 1 2 1 ...
B 1 . 1 0
C
...
I thought it would be easy at the first but I am pretty confused. Please help me and thank you so much in advance.
The easiest way to count the number of occurrences in a Python list of a given item is to use the Python . count() method. The method is applied to a given list and takes a single argument. The argument passed into the method is counted and the number of occurrences of that item in the list is returned.
Use the list. count() method of the built-in list class to get the number of occurrences of an item in the given list.
If you want to count multiple items in a list, you can call count() in a loop. This approach, however, requires a separate pass over the list for every count() call; which can be catastrophic for performance. Use couter() method from class collections , instead.
Rather than manually summing frequencies, use collections.counter
along with itertools
:
from collections import Counter
from itertools import chain, combinations
meets = Counter(chain.from_iterable(combinations(line, 2) for line in lines))
Where lines
is an iterable of iterables of names.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With