Identificación de cadenas específicas y verificación de filas posteriores en busca de otra cadena.
Tengo el siguiente DataFrame.
df = pd.DataFrame({'1': ['A', '.', '.', 'X', '.', '.'],
'2': ['.', '.', '.', '.', 'A', '.'],
'3': ['.', '.', '.', '.', '.', '.'],
'4': ['.', '.', '.', '.', '.', 'X']})
Quiero identificar todas las instancias en las que ocurre ‘A’ y verificar si ‘X’ ocurre dentro de las próximas 3 filas.
Después de eso, me gustaría ejecutar un comando basado en estas condiciones.
Un ejemplo de lo que estoy tratando de hacer sería…
for i, idx in df.iterrows():
if idx == 'A':
if 'X' existe dentro de las próximas 3 filas:
x = idx['1']
y = idx['2']
Agradecería mucho cualquier ayuda.
davy.ai
Para identificar todas las instancias en las que ocurre ‘A’ y verificar si ‘X’ ocurre en las próximas 3 filas, puedes usar el siguiente código:
Este código primero itera a través de cada fila del dataframe utilizando
df.iterrows()
. Luego verifica si ‘A’ está en la fila actual utilizandoif 'A' in row.values
. Si se encuentra ‘A’, luego recorre las siguientes 3 filas utilizandofor j in range(i+1, min(i+4,len(df)))
. Elmin(i+4,len(df))
se utiliza para asegurarse de no exceder los límites si el último ‘A’ está cerca del final del dataframe. Luego verifica si ‘X’ está en cada una de las siguientes 3 filas utilizandoif 'X' in df.iloc[j].values
. Si se encuentra ‘X’, extrae los valores de las columnas ‘1’ y ‘2’ para la fila actual utilizandox = row['1']
yy = row['2']
. Luego puedes ejecutar tu comando aquí basado en las condiciones.Ten en cuenta que este código asume que solo hay un ‘A’ por fila y que ‘A’ y ‘X’ solo están presentes en las columnas ‘1’ y ‘2’. Si tu dataframe tiene nombres de columnas diferentes o contiene múltiples ‘A’ por fila, deberás modificar el código en consecuencia.