Python | Find the most common item in each column in a 2D list



Examples :

  Input:  [[1, 1, 3], [2, 3, 3], [3, 2, 2], [2, 1, 3]]  Output:  [2, 1, 3]  Input:  [[`y`,` y`], [`y `,` x`], [`x`,` x`]]  Output:  [`y`,` x`] 

Method # 1: Using most_common () from the collections

most_common () module returns a list from n the most common elements and their number from the most common to the smallest. This way we can easily find the most common elements in each column using a list comprehension.

# Python3 program to find the most common
# item in every column in the 2D list

from collections import Counter

 

def mostCommon (lst):

 

  return [Counter (col) .most_common ( 1 ) [ 0 ] [ 0 ] for col in zip ( * lst)]

 
# Driver code

lst = [[ 1 , 1 , 3 ],

[ 2 , 3 , 3 ],

  [ 3 , 2 , 2 ],

[ 2 , 1 , 3 ]]

print (mostCommon (lst))

Exit:

 [2, 1, 3]  

Method # 3: Using mode () from statistics module

# Python3 program for finding common ones
# item in every column in 2D list

from scipy.stats import mode

import numpy as np

 

def mostCommon (lst):

 

val, count = mode (lst, axis = 0 )

return val.ravel (). tolist ()

  
# Driver code

lst = [[ 1 , 1 , 3  ],

[ 2 , 3 , 3 ],

[ 3 , 2 , 2 ],

  [ 2 , 1 , 3 ]]

print (mostCommon (lst))

Exit:

 [2, 1, 3]