Pensez à df
A B C
0 3 2 1
1 4 2 3
2 1 4 1
3 2 2 3
Je veux ajouter une autre colonne "D"
de telle sorte que D contient différentes Listes basées sur des conditions sur "A"
, "B"
y "C"
A B C D
0 3 2 1 [1,0]
1 4 2 3 [1,0]
2 1 4 1 [0,2]
3 2 2 3 [2,0]
Mon extrait de code ressemble à ceci :
df['D'] = 0
df['D'] = df['D'].astype(object)
df.loc[(df['A'] > 1) & (df['B'] > 1), "D"] = [1,0]
df.loc[(df['A'] == 1) , "D"] = [0,2]
df.loc[(df['A'] == 2) & (df['C'] != 0) , "D"] = [2,0]
Lorsque j'essaie d'exécuter ce code, l'erreur suivante se produit :
ValueError: Must have equal len keys and value when setting with an iterable
J'ai converti la colonne en Object
type comme suggéré aquí mais toujours avec une erreur.
Ce que je peux en déduire, c'est que pandas essaie d'itérer sur les éléments de la liste et attribue chacune de ces valeurs aux cellules, alors que j'essaie d'attribuer la liste entière à toutes les cellules répondant au critère.
Existe-t-il un moyen d'attribuer des listes de la manière décrite ci-dessus ?