Agregar una nueva columna en un marco de datos ya creado es bastante fácil. En realidad, se requiere agregar una nueva columna para procesar los datos del marco de datos creado anteriormente. Para ese propósito, podemos procesar los datos existentes y hacer una columna separada para almacenar los datos. La forma más sencilla de agregar una nueva columna junto con los datos es crear una nueva columna y asignarle nuevos valores. Por ejemplo:
Python3
import pandas as pd # Creating new dataframe initial_data = {'First_name': ['Ram', 'Mohan', 'Tina', 'Jeetu', 'Meera'], 'Last_name': ['Kumar', 'Sharma', 'Ali', 'Gandhi', 'Kumari'], 'Marks': [12, 52, 36, 85, 23] } df = pd.DataFrame(initial_data, columns = ['First_name', 'Last_name', 'Marks']) df['Results']=['Fail','Pass','Pass','Pass','Fail'] df
Producción:
First_name Last_name Marks Results 0 Ram Kumar 12 Fail 1 Mohan Sharma 52 Pass 2 Tina Ali 36 Pass 3 Jeetu Gandhi 85 Pass 4 Meera Kumari 23 Fail
Pero cuando la columna requiere algún cálculo o necesitamos agregar nuevos valores basados en valores en alguna columna, entonces podemos usar for loop. Veamos cómo crear una columna en el marco de datos de pandas usando for loop. En el ejemplo dado, se crea una nueva columna Resultado sobre la base de las marcas en la columna Marcas del marco de datos existente df. Si el valor en la columna Marcas es mayor que e igual a 33, entonces el valor en la nueva columna Resultado será ‘Aprobado’ y si el valor en la columna Marcas es menor que 0 y mayor que 100, entonces el valor se insertará en la columna ‘Resultado’ será ‘No válido’; de lo contrario, debería agregar valor como ‘Fallido’.
Ejemplo#2
Python3
# importing pandas import pandas as pd # Creating new dataframe initial_data = {'First_name': ['Ram', 'Mohan', 'Tina', 'Jeetu', 'Meera'], 'Last_name': ['Kumar', 'Sharma', 'Ali', 'Gandhi', 'Kumari'], 'Marks': [12, 52, 36, 85, 23] } df = pd.DataFrame(initial_data, columns = ['First_name', 'Last_name', 'Marks']) # Generate result using pandas result = [] for value in df["Marks"]: if value >= 33: result.append("Pass") elif value < 0 and value > 100: result.append("Invalid") else: result.append("Fail") df["Result"] = result print(df)
First_name Last_name Marks Result 0 Ram Kumar 12 Fail 1 Mohan Sharma 52 Pass 2 Tina Ali 36 Pass 3 Jeetu Gandhi 85 Pass 4 Meera Kumari 23 Fail
Ejemplo#3
También podemos usar la comprensión de listas para crear una nueva columna.
Python3
df['Results'] = ['Pass' if m>=33 else 'Fail' for m in df['Marks']] df
Producción:
First_name Last_name Marks Results 0 Ram Kumar 12 Fail 1 Mohan Sharma 52 Pass 2 Tina Ali 36 Pass 3 Jeetu Gandhi 85 Pass 4 Meera Kumari 23 Fail
Publicación traducida automáticamente
Artículo escrito por Jitender_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA