Cuente valores comunes de múltiples listas en Python

Mahipal Singh

Tengo varias listas y quiero encontrar valores comunes y contarlos. por ejemplo, suponga que tengo las siguientes listas.

l1=[1,22,63,4,5,66,7]
l2=[1,22,3,5,6,4]
l3=[1,2,3,5,66,4,70]

Rendimiento esperado:

ingrese la descripción de la imagen aquí

1 es común en toda la lista, por lo que se clasifica como 3. De manera similar, 6 está solo en una lista y se clasifica como 1.

Probé el método de intersección pero solo encontró los valores comunes.

usuario1740577

Primera y breve solución gracias a @HenryEcker:

l1=[1,22,63,4,5,66,7]
l2=[1,22,3,5,6,4]
l3=[1,2,3,5,66,4,70]
lst = l1+l2+l3
df = pd.DataFrame(lst, columns=['ID']).value_counts().reset_index(name='rank')

Segunda solución: (Primero puede concatenar tres listas con l1+l2+l3luego con Countercontar y crear y dictluego convertir dicta pandas).

from collections import Counter

l1=[1,22,63,4,5,66,7]
l2=[1,22,3,5,6,4]
l3=[1,2,3,5,66,4,70]
lst = l1+l2+l3

df = pd.DataFrame(Counter(lst).items(), columns=['ID', 'rank'])
df = df.sort_values('rank',ascending=False)

print(df)

Producción:

ingrese la descripción de la imagen aquí

Tiempo de ejecución de dos soluciones: ( %timeitse conoce como línea mágica en iPython. (Más información mágica de la documentación aquí ))

%timeit pd.DataFrame(Counter(lst).items(), columns=['ID', 'rank']).sort_values('rank',ascending=False)
# 952 µs ± 222 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%timeit pd.DataFrame(lst, columns=['ID']).value_counts().reset_index(name='rank')
# 2.75 ms ± 701 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Cuente valores comunes de varias listas en Python

Analizar múltiples valores comunes en dict (nombres de usuario)

Uniendo elementos comunes en listas de Python

Elementos comunes en listas de Python

Cuente el número de valores únicos para múltiples columnas en Python

Cuente los prefijos comunes por valor de entrada en python

Cuente los prefijos comunes por valor de entrada en python

Cuente los prefijos comunes por valor de entrada en python

python: forma sencilla de unir 2 matrices / listas basadas en valores comunes

Fusionando 2 listas de dictados basados en valores comunes

Python, Pandas: cuente valores basados en múltiples criterios en filas y múltiples columnas

Cómo encontrar una columna que tenga múltiples valores comunes en un solo marco de datos usando Python

Cómo encontrar una columna que tenga múltiples valores comunes en un solo marco de datos usando Python

Iterar sobre todas las combinaciones de valores en múltiples listas en Python

generando una combinación completa de valores de múltiples listas en Python?

Encuentra valores comunes en varias listas

Encuentra valores comunes en varias listas

fusionando múltiples listas de listas en python 3

¿Cómo seleccionar la columna de valores múltiples donde son comunes en un campo especificado?

Cuente la ocurrencia condicional de valores en múltiples columnas de un df usando otro df

Cuente la ocurrencia condicional de valores en múltiples columnas de un df usando otro df

Encontrar los valores más comunes en una lista de ndarrays en Python

Cuente valores únicos en Excel basados en múltiples criterios

Python: registro de valores específicos en un solo marco de datos de pandas desde múltiples listas con sublistas

Encuentre valores comunes de dos listas en la tabla de datos R

Sumar valores en una lista de listas de diccionarios usando pares clave-valor comunes

Comparando dos listas de diccionarios para encontrar valores comunes de un campo en particular

cuente dos listas de arrays A y B y cuente valores en A que sean menores que cada número de B

mySql: obtenga valores comunes de múltiples consultas