python – Promedio de una columna con condiciones en otras 2 columnas de un dataframe

tengo un dataframe que es del siguiente estilo:

In (1): df
Out(2): 
         Nombre          Fecha            Cantidad
    0    N0001       01/01/2019  0:00:00  75
    1    N0001       01/01/2019  0:15:00  77.8
    2    N0001       01/01/2019  0:30:00  48.3
    3    N0001       02/01/2019  1:30:00  52.1
    4    N0001       02/01/2019  1:45:00  75
    5    N0001       31/01/2019  4:45:00  80
    6    N0002       01/01/2019  0:00:00  77.8
    7    N0002       02/01/2019  0:00:00  48.3
    8    N0002       03/02/2019  2:00:00  52.1
    9    N0002       03/02/2019  2:15:00  52.1

Como se ve, hay 3 columnas. Lo interesante está en la columna ‘Fecha’ en el que está el día, mes y año, y la hora de la medida que se guarda en la columna ‘Cantidad’.
Tengo un bucle en el que se recorren los ‘Nombre’ de una lista que me he creado, y para cada ‘Nombre’ (N0001 y N0002) va recorriendo todos los días y horas del rango en el que hay datos. Por ejemplo, en este caso iría recorriendo para N0001 desde las 00:00 del 1 de enero hasta las 23h del 28 de febrero, y cuando acabe recorrería el mismo rango para el N002.

El objetivo es que en cada fecha y hora, cuando en el bucle coincida el ‘Nombre’ y la fecha y hora, se haga el promedio de la columna ‘Cantidad’ de todos los valores.

Por ejemplo: Para el ‘Nombre’ N0001 y el 01/01/2019 00:00:00, que haga la media de la columna ‘Cantidad’, ya que coincide tanto la fecha, como la hora (los minutos no interesan para nada). Y que lo escriba en un dataframe aparte (la columna sería el ‘Nombre’, la fila la ‘Fecha’ y el valor de la celda el promedio de la columna ‘Cantidad’) o que lo saque por pantalla. Haría la media de 75 + 77.8 + 48.3 (=201.1).

Formato dataframe salida, p.ej:

     Fecha                   Nombre        Cantidad
0    01/01/2019  0:00:00     N0001         201.1
1    01/01/2019  1:00:00     N0001         0
2    01/01/2019  2:00:00     N0001         0
3    01/01/2019  3:00:00     N0001         0
4    01/01/2019  4:00:00     N0001         0 o lo que corresponda... etc

En el caso que por ejemplo para el ‘Nombre’ no haya fecha ni / u hora disponible en el dataframe, que saque por pantalla o que guarde en el nuevo dataframe un 0.

java – ¿Cómo obtener los elementos menores al promedio?

Tengo el siguiente programa:

public class Suma {
    
    private static int suma = 0;

    public static void main(String() args) {
        
        //var nums = List.of(3, 9, 7, 12, 20, 4, 11, 9, 21, 6, 8, 10);
        int() nums = {3, 9, 7, 12, 20, 4, 11, 9, 21, 6, 8, 10};
        System.out.println(average(nums, 0));
    }
    
    public static float average(int n(), int pos){
        if(pos < n.length) {
            suma = suma + n(pos);
            average(n, pos + 1);
        }
        return (float)suma /(float)n.length;
    }
}

Que me permite obtener los siguientes resultados:

  • Suma de los elementos del Array
  • Número de elementos en el Array
  • Resultado División(Promedio).

Cómo puedo imprimir estos datos pero filtrando los elementos para obtener los elementos que son menores al promedio, sin utilizar ciclos repetitivos.

No , logro sacar un promedio en Matriz lenguaje c

Mi pregunta es como puedo sacar un promedio en una matriz 4×4

el problema es el siguiente
tengo una matriz (4 X 4) cargada con números enteros, como se muestra a continuación
~
0 1 2 3
0 | 4 | 5 | 8 | 1
1 | 5 | 9 |12 | 4
2 | 6 | 5 | 9 | 15
3 | 7 | 2 | 7 | 11
~
dentro de una matriz tengo que calcular el promedio de los numeros
marcados (EJEMPLO 4 – 9 – 9 -11) en ese ejemplo de la matriz el promedio
que me da es 8,25

debo hacer lo mismo con cualquier numero cargado pero en esa posicion y que me de el promedio .

hasta lo que tengo es esto pero me faltaría sacar el promedio


         #include <stdio.h>
        #include <stdlib.h>
        #include <conio.h>
        #define tam 4
        #define tam1 4
       int main()
       {
       int NUMERO (tam) (tam1);
       int i , j ;
       int opcion; //la utilizo en el menu      swicht - case
       int suma = 0;
       float promedio = 0;


         do{
      // dibujo la pantalla
       system ("cls");  //limpio la pantalla
       printf("n Sistema de Matrices");
       printf("nnn1 - Ingreso de datos");
       printf("n2 - Muestro los datos");
       printf("n3-  mostrar promedios");
       printf("n9 - Salir");
       printf("nnnOpcion:  ");
       scanf("%d", &opcion);

       //Utilizo swicht - case en lugar de if anidados
       switch (opcion)
       {
              case 1:
                     //Cargo los datos en la matriz

                   for( i=0 ; i < tam ; i++)   // recorro la fila
                   {  for( j=0 ; j < tam1 ; j++)   // recorro la columna
                        {
                            printf("n NUMERO( %d) ( %d) =  ",i,j);
                            scanf("%d", &NUMERO(i)(j));
                        }
                   }

                   //para que no siga corto la opcion 1
                   break;
             case 2:
                   //Muestro la matriz

                   printf("n Datos de la matriz");

                   for( i=0 ; i < tam ; i++)
                   {
                              printf("n");  //asi armo el cuadrado de la matriz. Bajo un renglon
                              for( j=0 ; j < tam1 ; j++)
                              {
                                   printf("t %d ", NUMERO(i)(j));

                              }
                     }
                     getche();
                     //para que no siga corto la opcion 2
                     break;
             case 3:
                  //muestro el promedio
                  // controlo que ingresen una fila permitida









                  }
                  getche();
                  break;

             case 9:
                    printf("nnGracias por usar el sistemann");
                    break;

             default:
                     printf("nnOPcion erronea");
                     break;
         }
      }while(opcion != 9);

      system("pause");
          return 0;
        }

                   

c++ – Como sacar promedio de SJF

Hola estoy haciendo un programa en C++ donde tengo que programar un “Program for Shortest Job First (SJF)”
Lo que no se hace es al momento de sacar el promedio de un conjunto de arreglos pero cuando ya estén ordenados de menor a mayor. Es difícil de explicar pero me explicare mejor, el usuario tiene que digitar un numero “x” de números que serán guardados en un arraylist y esos se ordenaran de menor a mayor, ya que estos están ordenados de menor a mayor, tengo que sacar la suma y el promedio de esos números ya ordenados de menor a mayor, pero la suma tiene que ser de esta forma.

“Numeros digitados por el usuario”
-> ” 10,9,3,6,7 “.

“Numeros ya ordenados de menor a mayor” -> “3 -> 6 -> 7 -> 9 -> 10”.

“Sacar el promedio de los números ya ordenados pero que el resultado de la suma anterior sea un nuevo numero” ->

3+6 = 9

9+7 = 16

16+9 = 25

25+10 = 35

(3+9+16+25+35) / 5 = 17.6

—Output—

----Simulacion de SJF----

¿Cuantos procesos desea?: 5
Tiempo de proceso (A): 10
Tiempo de proceso (B): 9
Tiempo de proceso (C): 3
Tiempo de proceso (D): 6
Tiempo de proceso (E): 7

3 --> 6 --> 7 --> 9 --> 10 --> NULL
El promedio es: 7 

—–Mi código——

#include <iostream>
using namespace std;

int main(){
    int arr(27);
    char procesos () = {'A','B','C','D','E'};
    int i,j,n,aux;
    float promedio=0,total;

      cout<<"----Simulacion de SJF----n"<<endl;
      cout<<"¿Cuantos procesos desea?: ";
      cin>>n;
    
    for(i=0; i<n; i++){
        
        cout<<"Tiempo de proceso ("<<procesos(i)<<"): ";
        cin>>arr(i);
        
        total=total+arr(i);
        promedio=total/n; 
    }

      for(i=0;i<n;i++){
        for(j=0;j<n;j++){    
          if(arr(j) > arr(j+1)){ 

            aux = arr(j);
            arr(j) = arr(j+1);
            arr(j+1) = aux;
          }
        }
      }
      cout<<"n";
      for(i=0;i<n;i++){
        cout<<arr(i)<<" --> ";
      }
      if(i==n){  
        cout<<"NULL";
      }

      cout<<"nEl promedio es: "<<promedio<<"nn";
    
    
    return 0;
}