Encontrar la combinación más frecuente en el flujo de datos -- python campo con pandas camp Relacionados El problema

Finding the most frequent combination in DataFrame


3
vote

problema

Español

Tengo un protector de datos con dos columnas From y To , y necesito conocer la combinación más frecuente de ubicaciones From y To .

Ejemplo:

  From        To ------------------ Home        Office Home        Office Home        Office Airport     Home Restaurant  Office   
Original en ingles

I have a DataFrame with two columns From and To, and I need to know the most frequent combination of locations From and To.

Example:

From        To ------------------ Home        Office Home        Office Home        Office Airport     Home Restaurant  Office 
     

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Puede agrupar las dos columnas juntas y contar el número de apariciones de cada par, ordene los pares por este conteo.

El siguiente código hace el trabajo:

  df.groupby(["From", "To"]).size().sort_values(ascending=False)   

y, por ejemplo de la pregunta, devuelve:

  From        To ----------------------- Home        Office    3 Restaurant  Office    1 Airport     Home      1   
 

You can group by the two columns together and count the number of occurrences of each pair, then sort the pairs by this count.

The following code does the job:

df.groupby(["From", "To"]).size().sort_values(ascending=False) 

and, for the example of the question, it returns:

From        To ----------------------- Home        Office    3 Restaurant  Office    1 Airport     Home      1 
 
 
2
 
vote

Si el pedido importa:

  df['FROM_TO'] = df['FROM'] + df['TO']  df['COUNT'] = 1  df.groupby(['FROM_TO'])['COUNT'].sum()   

te da todas las ocurrencias de una sola vez. Simplemente tome el máximo para encontrar la mayor ocurrencia.

Si el pedido importa primero ordena los valores antes:

df.loc [:,:] = np.sort (df.values, eje = 1) # Si el DF solo consiste en el ADN a columnas.

 

if the order does matter:

df['FROM_TO'] = df['FROM'] + df['TO']  df['COUNT'] = 1  df.groupby(['FROM_TO'])['COUNT'].sum() 

gives you all the occurrences in one go. Simply take the max to find the largest occurrence.

If the order does matter first sort the values before:

df.loc[:,:] = np.sort(df.values,axis=1) # if the df only consists of the FROM adn TO columns.

 
 
 
 
1
 
vote

IIUC, SeriesGroupBy.value_counts < / Código> y Series.idxmax

  df.groupby('From')['To'].value_counts().idxmax()   

Salida

  ('Home', 'Office')   

en general let dic:NSDictionary = result if(dic != nil){ let userId: String = dic["id"] as! String } 0 es más rápido que let dic:NSDictionary = result if(dic != nil){ let userId: String = dic["id"] as! String } 1111

Otra forma:

  let dic:NSDictionary = result  if(dic != nil){         let userId: String = dic["id"] as! String } 2  

o

  let dic:NSDictionary = result  if(dic != nil){         let userId: String = dic["id"] as! String } 3  

Salida

  let dic:NSDictionary = result  if(dic != nil){         let userId: String = dic["id"] as! String } 4  
 

IIUC, SeriesGroupBy.value_counts and Series.idxmax

df.groupby('From')['To'].value_counts().idxmax() 

Output

('Home', 'Office') 

in general groupby.value_counts is faster than groupby.size

Another way:

df.apply(tuple, axis=1).value_counts().idxmax() 

Or

df.apply(tuple, axis=1).mode() 

Output

0    (Home, Office) dtype: object 
 
 

Relacionados problema

-1  ¿Cómo lo convierto en este código OUTERHTML para sacar ciertos datos? (No sé cómo visualizarlo, así que quiero probar esto)  ( How do i loop over this outerhtml code to get out certain data i dont know ho ) 
Estoy tratando de obtener una lista que coincida con los distritos de la India a sus códigos de distrito, ya que fueron durante el censo de la población de 20...

1  ¿Puedes usar Pandas Groupby para agrupar filas, determinado sumando un valor de columna?  ( Can you use pandas groupby to group rows determined by summing a column value ) 
Me gustaría agrupar filas en un contexto de datos por valores de una columna. El ejemplo dado a continuación sería si estuviera agrupando los valores de 'Numb...

2  Python MultiPhreading no aumenta la velocidad  ( Python multithreading doesnt increase speed ) 
Tengo 2 archivos separados que contienen las coordenadas de un lugar y el otro que contiene la calle y el código postal. Mediante el uso de pandas Quiero ...

2  Cambiar filas en pandas  ( Change rows in pandas ) 
Tengo una matriz en marco de datos de Pandas print dfMatrix 0 1 2 3 4 0 10000 10 8 11 10 1 10 100000 ...

0  El valor de la verdad de una serie es ambiguo. ¿Cómo puedo arreglar este error? [duplicar]  ( The truth value of a series is ambiguous how do i fix this error ) 
Esta pregunta ya tiene respuestas aquí : El valor de la verdad de una serie es ambiguo. Use A.EMPTY,...

1  Pandas DataFrame al diccionario con tuplas como clave y valores  ( Pandas dataframe to dictionary with tuples as key and values ) 
Necesito ayuda para hacer lo siguiente: Tengo un archivo CSV como lo siguiente, cargado en un Frame 'DF'. Hay varias regiones, diferentes valores para la me...

0  Fusionar con el minuto más cercano usando Pandas  ( Merge with the nearest minute using pandas ) 
Simplemente quiero fusionar dos cuadros de datos dentro de ± 1 min. AQUÍ NAME_DF con el conjunto de datos de muestra: Name Date A 2/19/2019 17:1...

8  Añadir la tasa de cambio a Pandas DataFrame  ( Add rate of change to pandas dataframe ) 
Tengo el siguiente fábrico de datos de Pandas: lastrun value 0 2013-10-24 13:10:05+00:00 55376 1 2013-...

0  Coincidencia de cadenas en Python Pandas DataFrame cuando hay diferentes posibilidades  ( String match in python pandas dataframe when there is different possibilities ) 
Ingrese la descripción de la imagen aquí Tengo un conteo de datos (300,000 filas) con 4 columnas. Tengo una columna "Modelo" donde tengo los siguientes va...

2  Pandas Groupby y Selector orden  ( Pandas groupby and selector order ) 
Di que tengo un contexto de datos con 3 columnas: Criteria Group Value 0 A 0 0.1 1 B 0 0.2 2 B 1 0.3 3 B ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos