2017-04-26 1 views
1

j'aiComment attribuez-vous une série à une autre ou de fusionner où l'indice ne coupe pas et de conserver des valeurs de l'une des séries pour les indices intéressants

S1 = pd.Series([1,2,3,4], index = ['A', 'B', 'C', 'D']) 
S2 = pd.Series([5,6,7,8], index = ['C', 'D', 'E', 'F']) 

Je veux obtenir

S3 = pd.Series([1,2,5,6,7,8], index = ['A', 'B', 'C', 'D', 'E', 'F']) 

Si un index est dans S1 mais pas S2, gardez la valeur S1. Si l'index n'est pas dans S1 mais est dans S2, gardez la valeur dans S2. si index dans à la fois S1 et S2 garder la valeur dans S2.

Il peut également être considéré comme une fusion de S1 et S2 mais pour les valeurs où les intérêts d'index conservent les valeurs dans S2.

Répondre

1

Je pense que vous avez besoin combine_first avec astype si toutes les valeurs de sortie sont des nombres entiers:

S3 = S2.combine_first(S1).astype(int) 
print (S3) 
A 1 
B 2 
C 5 
D 6 
E 7 
F 8 
dtype: int32