Suite de cette discussion: get subsection of df based on multiple conditionssérie utilisée pour sélectionner les lignes de df pandas géants
Je voudrais tirer des lignes sur plusieurs données en fonction des conditions qui sont stockées dans un objet de la série.
columns = ['is_net', 'is_pct', 'is_mean', 'is_wgted', 'is_sum']
index = ['a','b','c','d']
data = [['True','True','False','False', 'False'],
['True','True','True','False', 'False'],
['True','True','False','False', 'True'],
['True','True','False','True', 'False']]
df = pd.DataFrame(columns=columns, index=index, data=data)
df
is_net is_pct is_mean is_wgted is_sum
a True True False False False
b True True True False False
c True True False False True
d True True False True False
Mes conditions:
d={'is_net': 'True', 'is_sum': 'True'}
s=pd.Series(d)
Sortie prévue:
is_net is_pct is_mean is_wgted is_sum
c True True False False True
Ma tentative avortée:
(df == s).all(axis=1)
a False
b False
c False
d False
dtype: bool
Je ne sais pas pourquoi 'c' est faux lorsque les deux conditions furent rencontrés.
Remarque, je peux obtenir les résultats souhaités comme cela, mais je préfère utiliser la méthode des séries.
df[(df['is_net']=='True') & (df['is_sum']=='True')]
Est-ce que ce travail s'il y avait plus de 2 mais moins len (df.columns)? –
Désolé, pouvez-vous expliquer mieux que vous voulez dire si vous avez eu plus de conditions mais que les conditions totales sont inférieures au nombre de colonnes? Si oui, n'est-ce pas la même chose? – EdChum
désolé oui, plus de 2 conditions. C'est génial, je vais essayer. –