Récemment, je fais un peu de travail avec deux séries pandas géants:pandas géants: changer une série en utilisant une seconde avec le même indice
- La première série contient des données purement numériques
- La deuxième série contient données catégoriques: "Plus", "Minus" et NaN.
données Exemple:
first_series = pandas.Series([0.000003, 0.004991, 0.004991])
second_series = pandas.Series(["Plus", "Minus", np.nan], dtype="object",
index=first_series.index)
(dans le scénario du monde réel, la deuxième série est construit en utilisant programme le même indice que le premier, mais ici il est juste un exemple simplifié)
Je fais d'abord une certaine manipulation:
first_series = np.log2(1/first_series)
Ensuite, je dois inverser le signe (multiplier par -1) du « M correspondant inus "entrées, et tourner à NaN
ceux qui dans la deuxième série sont NaN
.
La dernière partie fonctionne bien:
first_series[np.invert(second_series.notnull())] = np.nan
print first_series
0 18.567557
1 7.646459
2 NaN
Name: Example data
Cependant, je suis un peu coincé avec la première partie. Comment puis-je utiliser les informations de la seconde série (étant donné qu'elles sont indexées de manière identique) pour basculer le signe dans la première série?
En tant que référence, après l'application, first_series devrait être comme ceci:
0 18.567557
1 -7.646459
2 NaN
Name: Example data
Il ne fonctionne pas dans la caisse actuelle de pandas géants I » J'utilise. Je vais déposer un bug. – Einar