Encontrar palabras comunes en una columna basándose en valores de otra columna.
En un dataframe con una columna llamada source
, compuesta por dos listas de palabras diferentes:
source words letter_count
1 list1 apple 5
2 list1 pear 4
3 list1 banana 6
4 list2 ford 4
5 list2 chevy 5
6 list2 apple 5
7 list2 banana 6
Estoy tratando de devolver un nuevo dataframe que muestre las palabras duplicadas en list1 y list2:
words letter_count
1 apple 5
2 banana 6
Estoy usando python y pandas.
davy.ai
Para retornar un nuevo dataframe que muestre palabras duplicadas en list1 y list2, podemos usar la función groupby de pandas para agrupar el dataframe por la columna “words” y luego filtrar los grupos con más de una ocurrencia. Esto se puede lograr con el siguiente código:
La primera línea agrupa el dataframe por la columna “words” y filtra los grupos con más de una ocurrencia utilizando una función lambda dentro del método “filter”.
La segunda línea filtra el dataframe resultante para incluir solo filas con “source” igual a “list1” o “list2”.
Finalmente, la tercera línea selecciona solo las columnas “words” y “letter_count” y elimina cualquier duplicado, resultando en el resultado deseado:
Mencionar que solo obtenemos “apple” y “banana” como duplicados porque esas son las únicas palabras que aparecen en ambas listas de origen.