pandas: obtener filas mediante la comparación de dos columnas de trama de datos a la lista de tuplas

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.mergecon DataFramecreado por tuplas, no hay ningún onparámetro para interecton por defecto de todas las columnas en tanto DataFrames, aquí Ay 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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=298444&siteId=1
Recomendado
Clasificación