J'ai la structure suivante pour mon dataFrame:
Index: 1008 entries, Trial1.0 to Trial3.84
Data columns (total 5 columns):
CHUNK_NAME 1008 non-null values
LAMBDA 1008 non-null values
BETA 1008 non-null values
HIT_RATE 1008 non-null values
AVERAGE_RECIPROCAL_HITRATE 1008 non-null values
chunks=['300_321','322_343','344_365','366_387','388_408','366_408','344_408','322_408','300_408']
lam_beta=[(lambda1,beta1),(lambda1,beta2),(lambda1,beta3),...(lambda1,beta_n),(lambda2,beta1),(lambda2,beta2)...(lambda2,beta_n),........]
my_df.ix[my_df.CHUNK_NAME==chunks[0]&my_df.LAMBDA==lam_beta[0][0]]
Je veux obtenir les lignes du Dataframe pour un morceau particulier, disons les morceaux [0] et la valeur lambda particulière. Ainsi, dans ce cas, la sortie doit être toutes les lignes de la trame de données ayant CHUNK_NAME = '300_321' et LAMBDA = lambda1. Il y aurait n lignes une pour chaque valeur bêta qui serait retournée. Mais à la place, j'obtiens l'erreur suivante. Toute aide pour résoudre ce problème serait appréciée.
TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]
&
a une priorité plus élevée que ==
. Écrire:
my_df.ix[(my_df.CHUNK_NAME==chunks[0])&(my_df.LAMBDA==lam_beta[0][0])]
^ ^ ^ ^