name iloc how example columns column and python pandas

python - iloc - Lógica condicional en Pandas DataFrame



python loc example (4)

Cómo aplicar la lógica condicional a un DataFrame de Pandas.

Ver el marco de datos que se muestra a continuación,

data desired_output 0 1 False 1 2 False 2 3 True 3 4 True

Mis datos originales se muestran en la columna ''datos'' y la salida deseada se muestra a su lado. Si el número en ''datos'' está por debajo de 2.5, la salida deseada es Falso.

Podría aplicar un bucle y volver a construir el marco de datos ... pero eso sería "untípico"


En este ejemplo específico, donde el DataFrame es solo una columna, puede escribir esto elegantemente como:

df[''desired_output''] = df.le(2.5)

le prueba si los elementos son menores o iguales a 2.5, de manera similar lt por menos de, gt y ge .


Solo compara la columna con ese valor:

In [9]: df = pandas.DataFrame([1,2,3,4], columns=["data"]) In [10]: df Out[10]: data 0 1 1 2 2 3 3 4 In [11]: df["desired"] = df["data"] > 2.5 In [11]: df Out[12]: data desired 0 1 False 1 2 False 2 3 True 3 4 True


In [1]: df Out[1]: data 0 1 1 2 2 3 3 4

Desea aplicar una función que condicionalmente devuelve un valor basado en la columna de marco de datos seleccionada.

In [2]: df[''data''].apply(lambda x: ''true'' if x <= 2.5 else ''false'') Out[2]: 0 true 1 true 2 false 3 false Name: data

Luego, puede asignar esa columna devuelta a una nueva columna en su marco de datos:

In [3]: df[''desired_output''] = df[''data''].apply(lambda x: ''true'' if x <= 2.5 else ''false'') In [4]: df Out[4]: data desired_output 0 1 true 1 2 true 2 3 false 3 4 false


In [34]: import pandas as pd In [35]: import numpy as np In [36]: df = pd.DataFrame([1,2,3,4], columns=["data"]) In [37]: df Out[37]: data 0 1 1 2 2 3 3 4 In [38]: df["desired_output"] = np.where(df["data"] <2.5, "False", "True") In [39]: df Out[39]: data desired_output 0 1 False 1 2 False 2 3 True 3 4 True