import numpy as np
import pandas as pd
lst2 = [[0.23,"f1"],[5.36,'f2']]
lst2_df = pd.DataFrame(lst2,index=list('pd'),columns=list('ab'))
lst2_df = lst2_df.rename({'a':'A'},axis='columns')
print(lst2_df)
m = ['1','f2']
print(lst2_df.loc[lst2_df['b'].isin(m)])
Se eu desejar iterar essa condição para cada coluna e não codificá-la permanentemente, o que devo escrever? Eu tentei print(lst2_df.loc[lst2_df['A':'b'].isin(m)])
não funcionou. Sei que há perguntas semelhantes no site, mas não consegui encontrar uma que resolvesse o meu problema.
Usar:
m = ['1','f2']
print(lst2_df.loc[lst2_df.isin(m).any(axis=1)])
A b
d 5.36 f2
Explicação:
Compare DataFrame
(todas as colunas) por DataFrame.isin
para booleano:
print (lst2_df.isin(m))
A b
p False False
d False True
Em seguida, adicione DataFrame.any
para verificação pelo menos um True por linha:
print (lst2_df.isin(m).any(axis=1))
p False
d True
dtype: bool
E por último filtrar por boolean indexing
.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras