Cree una columna usando for loop en Pandas Dataframe

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)
Producción:

  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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *