Multiplica Columnas por un Escalar en Pandas
- Use la asignación en el lugar para multiplicar columnas por un escalar en Pandas
-
Use la función
multiplicar
para multiplicar columnas por un escalar en Pandas -
Use la función
aplicar
para multiplicar columnas por un escalar en Pandas -
Usa el Operador
loc
para Multiplicar Columnas por un Escalar en Pandas -
Usa el Operador
iloc
para Multiplicar Columnas por un Escalar en Pandas
Usamos Pandas para muchas operaciones de marcos de datos, desde completar datos hasta limpiar dichos datos. El marco de datos de Pandas ofrece métodos para datos y operaciones matemáticas usando Python.
Diferentes operaciones matemáticas pueden parecer menos intuitivas de realizar, pero con Python, son mucho más fáciles de lo que piensas. Una de esas operaciones es multiplicar las columnas de Pandas por valores escalares.
Este artículo mostrará cinco formas de multiplicar columnas por un escalar en Pandas dentro de diferentes complejidades.
Use la asignación en el lugar para multiplicar columnas por un escalar en Pandas
Antes de analizar cómo abordar la multiplicación de columnas por valores escalares en pandas mediante la asignación en el lugar, mostremos lo que pretendemos lograr.
Tenemos un marco de datos con siete columnas.
Ahora, queremos multiplicar una columna (uno
) por un valor escalar (5).
Entonces, ¿cómo logramos eso? El primer enfoque es utilizar la asignación en el lugar, una operación en la que, además de asignar un valor, operamos sobre el valor.
Usando la asignación en el lugar, sobrescribimos el valor de la primera variable del operando con el resultado de la operación realizada en el valor del operando. Visualmente, x *= 3
es equivalente a x = x * 3
donde el valor que tiene la variable x
se multiplica por 3
y luego se asigna a la misma variable x
.
Para ilustrar esto, podemos crear un marco de datos de Pandas de 6 filas y 7 columnas pobladas con “unos” que asignan nombres de columna y realizan la asignación en el lugar en la columna “uno”.
import pandas as pd
import numpy as np
df = pd.DataFrame(
np.ones((6, 7)), columns=["one", "two", "three", "four", "five", "six", "seven"]
)
print(df)
Producción :
one two three four five six seven
0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2 1.0 1.0 1.0 1.0 1.0 1.0 1.0
3 1.0 1.0 1.0 1.0 1.0 1.0 1.0
4 1.0 1.0 1.0 1.0 1.0 1.0 1.0
5 1.0 1.0 1.0 1.0 1.0 1.0 1.0
Para usar la asignación en el lugar, tenemos que seleccionar la columna Pandas que queremos multiplicar por el valor escalar usando la notación de puntos o la notación de corchetes. Usando la notación de corchetes, seleccionamos la columna uno
.
df["one"] *= 5
print(df)
Producción :
one two three four five six seven
0 5.0 1.0 1.0 1.0 1.0 1.0 1.0
1 5.0 1.0 1.0 1.0 1.0 1.0 1.0
2 5.0 1.0 1.0 1.0 1.0 1.0 1.0
3 5.0 1.0 1.0 1.0 1.0 1.0 1.0
4 5.0 1.0 1.0 1.0 1.0 1.0 1.0
5 5.0 1.0 1.0 1.0 1.0 1.0 1.0
Como puedes ver, la columna uno
se ha multiplicado por el valor escalar (5).
Use la función multiplicar
para multiplicar columnas por un escalar en Pandas
En lugar de usar el operador de multiplicación en un enfoque de asignación en el lugar, puede usar el método multiplicar
proporcionado por Pandas. Aplicamos el método en la columna que queramos y pasamos el valor escalar como argumento para el método multiplicar
.
Para mostrar el método multiplicar
, multiplicaremos la columna dos
por el valor escalar de 7
(accediendo a la columna dos
usando la notación de puntos).
df.two = df.two.multiply(7)
print(df)
Producción :
one two three four five six seven
0 5.0 7.0 1.0 1.0 1.0 1.0 1.0
1 5.0 7.0 1.0 1.0 1.0 1.0 1.0
2 5.0 7.0 1.0 1.0 1.0 1.0 1.0
3 5.0 7.0 1.0 1.0 1.0 1.0 1.0
4 5.0 7.0 1.0 1.0 1.0 1.0 1.0
5 5.0 7.0 1.0 1.0 1.0 1.0 1.0
Use la función aplicar
para multiplicar columnas por un escalar en Pandas
Similar a cómo usamos el método multiplicar
, podemos usar el método aplicar
, una función de orden superior, para multiplicar columnas por un escalar en Pandas. El método aplicar
toma una función lambda
que realizará una acción sobre los elementos de la celda de la columna sobre la que se aplica.
Entonces, podemos especificar una acción de multiplicación en el elemento de la celda usando la función lambda
.
Para ilustrar cómo funciona esto, multiplicaremos la columna “tres” (del marco de datos utilizado en secciones anteriores) por 9
usando el método “aplicar”.
df["three"] = df["three"].apply(lambda x: x * 9)
print(df)
Producción :
one two three four five six seven
0 5.0 7.0 9.0 1.0 1.0 1.0 1.0
1 5.0 7.0 9.0 1.0 1.0 1.0 1.0
2 5.0 7.0 9.0 1.0 1.0 1.0 1.0
3 5.0 7.0 9.0 1.0 1.0 1.0 1.0
4 5.0 7.0 9.0 1.0 1.0 1.0 1.0
5 5.0 7.0 9.0 1.0 1.0 1.0 1.0
Puede ver que todas las celdas en la columna tres
se han multiplicado por 9
según la función lambda
. Este enfoque puede parecer estresante, pero puede ser más funcional cuando el valor que queremos multiplicar la columna puede variar según la celda.
Usa el Operador loc
para Multiplicar Columnas por un Escalar en Pandas
Además, podemos usar el operador loc
para multiplicar la columna por un escalar en Pandas. Con el operador loc
, podemos indexar una parte de un marco de datos.
Podemos indexar en base a filas y columnas. Para nosotros, necesitamos indexar según la columna que necesitamos.
La sintaxis típica del operador loc
se muestra a continuación.
DataFrame.loc[rows, columns]
Sin embargo, para que podamos acceder solo a la columna, podemos usar la siguiente sintaxis.
DataFrame.loc[:, columns]
El :
indica que quiere todas las filas. En conjunto, la sintaxis anterior significa acceder a todas las filas en la columna especificada.
Ahora, usaremos la sintaxis anterior para obtener la columna “cuatro” y usaremos la asignación en el lugar para multiplicar los valores por 11
.
df.loc[:, "four"] *= 11
print(df)
Producción :
one two three four five six seven
0 5.0 7.0 9.0 11.0 1.0 1.0 1.0
1 5.0 7.0 9.0 11.0 1.0 1.0 1.0
2 5.0 7.0 9.0 11.0 1.0 1.0 1.0
3 5.0 7.0 9.0 11.0 1.0 1.0 1.0
4 5.0 7.0 9.0 11.0 1.0 1.0 1.0
5 5.0 7.0 9.0 11.0 1.0 1.0 1.0
Esto parece innecesariamente largo, pero este enfoque es funcional si queremos multiplicar varias columnas. Por ejemplo, si queremos multiplicar las columnas cinco
y seis
por 13
, pasaremos una lista con los nombres de la columna como segundo argumento al operador loc
.
df.loc[:, ["five", "six"]] *= 13
print(df)
Producción :
one two three four five six seven
0 5.0 7.0 9.0 11.0 13.0 13.0 1.0
1 5.0 7.0 9.0 11.0 13.0 13.0 1.0
2 5.0 7.0 9.0 11.0 13.0 13.0 1.0
3 5.0 7.0 9.0 11.0 13.0 13.0 1.0
4 5.0 7.0 9.0 11.0 13.0 13.0 1.0
5 5.0 7.0 9.0 11.0 13.0 13.0 1.0
Usa el Operador iloc
para Multiplicar Columnas por un Escalar en Pandas
Similar al operador loc
, acepta solo valores enteros como índice de los valores a los que pretendemos acceder. A diferencia de loc
, donde podemos usar el nombre de la columna, usamos el valor del índice de la columna.
Además, recuerda que el índice empieza en 0 y no en 1. Por tanto, si queremos acceder a la columna siete
y multiplicar por 15
, utilizaremos el valor del índice 6
.
df.iloc[:, 6] = df.iloc[:, 6] * 15
print(df)
Producción :
one two three four five six seven
0 5.0 7.0 9.0 11.0 13.0 13.0 15.0
1 5.0 7.0 9.0 11.0 13.0 13.0 15.0
2 5.0 7.0 9.0 11.0 13.0 13.0 15.0
3 5.0 7.0 9.0 11.0 13.0 13.0 15.0
4 5.0 7.0 9.0 11.0 13.0 13.0 15.0
5 5.0 7.0 9.0 11.0 13.0 13.0 15.0
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedInArtículo relacionado - Pandas DataFrame Column
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo obtener la suma de la columna de Pandas
- Cómo cambiar el orden de las columnas Pandas DataFrame
- Cómo convertir la columna del DataFrame en cadena en los pandas