abra:
Decir que tengo un pandas trama de datos con cuatro columnas: A, B, C, D.
my_df = pd.DataFrame({'A': [0,1,4,9], 'B': [1,7,5,7],'C':[1,1,1,1],'D':[2,2,2,2]})
También tengo una lista de tuplas:
my_tuples = [(0,1),(4,5),(9,9)]
Quiero mantener sólo las filas de la trama de datos, donde el valor de (my_df['A'],my_df['B'])
es igual a una de las tuplas en my_tuples.
En este ejemplo, esto sería fila # 0 y fila # 2.
¿Existe una forma correcta de hacer esto? Te agradecería cualquier ayuda.
Jezreel:
Uso DataFrame.merge
con DataFrame
creado por tuplas, no hay ningún on
parámetro para interecton por defecto de todas las columnas en tanto DataFrames
, aquí A
y B
:
df = my_df.merge(pd.DataFrame(my_tuples, columns=['A','B']))
print (df)
A B C D
0 0 1 1 2
1 4 5 1 2
O:
df = my_df[my_df.set_index(['A','B']).index.isin(my_tuples)]
print (df)
A B C D
0 0 1 1 2
2 4 5 1 2