A partir de cette trame de données simple, df
:pandas géants - dataframe masque par nom de colonne
col1,col2
1,3
2,1
3,8
je voudrais appliquer une mask
booléenne en fonction du nom de la colonne. Je sais qu'il est facile pour les valeurs:
mask = df <= 1
df = df[mask]
qui retourne:
masque:
col1 col2
0 True False
1 False True
2 False False
df:
col1 col2
0 1 NaN
1 NaN 1
2 NaN NaN
comme prévu. Maintenant, je voudrais obtenir un masque booléen basé sur le nom de la colonne, quelque chose comme:
mask = df == df['col_1']
qui doit retourner:
masque
col1 col2
0 True False
1 True False
2 True False
EDIT:
Cela semble bizarre , mais j'ai besoin de ce genre de masques pour filtrer plus tard par des heatmaps seaborn colonnes.
Désolé mais pourquoi montrer les cols qui ne répondent pas aux critères? Vous pouvez filtrer en faisant 'df.filter (['col1'])' ou 'df [df.columns [df.colonnes == 'col1]] ' – EdChum
@EdChum merci! En fait, les valeurs 'True' appartiennent aux valeurs correspondant au nom de la colonne que je voudrais sélectionner. –
Eh bien, vous pouvez simplement faire 'df.columns == 'col1' qui va retourner un masque booléen – EdChum