PowerShell: cómo seleccionar los N elementos principales de cada grupo
A menudo, es posible que desee seleccionar los N elementos principales de cada grupo en un objeto en PowerShell.
Puede utilizar la siguiente sintaxis para hacerlo:
$my_data | Group-Object team | ForEach-Object {$_.group[0..2]}
Este ejemplo en particular selecciona los 3 elementos principales de cada grupo del objeto denominado $my_data, que ha sido agrupado por la propiedad team.
Esto es lo que hacen los distintos comandos:
- Equipo de grupo-objeto: agrupa las filas en el objeto $my_data según la propiedad del equipo.
- ForEach-Object: especifica una acción a realizar en cada grupo
- $_: recupera la fila actual en el bucle ForEach-Object
- grupo[0..2]: recupera elementos en las posiciones de índice 0 a 2 (es decir, los primeros 3 elementos) de la fila actual
El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.
Ejemplo: seleccionar los N elementos principales de cada grupo en PowerShell
Supongamos que tenemos un archivo llamado nba_data.csv que contiene información sobre varios jugadores de baloncesto.
Podemos usar la siguiente sintaxis para importar este archivo CSV a un objeto llamado $my_data:
$my_data = Import-Csv nba_data.csv
La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Supongamos que queremos seleccionar las 3 primeras filas de cada valor único en la columna equipo.
Podemos utilizar la siguiente sintaxis para hacerlo:
$my_data | Group-Object team | ForEach-Object {$_.group[0..2]}La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Observe que esto devuelve las 3 filas superiores para cada equipo.
Para devolver un número diferente de filas para cada grupo, simplemente cambie 2 a un valor diferente.
Por ejemplo, podrías usar $_.group[0..4] para devolver las 5 primeras filas de cada grupo.
Nota: Puede encontrar la documentación completa para el cmdlet Group-Object en PowerShell aquí.

