2017-10-06 2 views

Répondre

1
df = pd.DataFrame([complex(x,y) for x,y in 
      zip(np.random.randn(3),np.random.randn(3))]) 
print(df) 

Out: 
            0 
0 (0.815555184453+0.942659258939j) 
1 (0.725136694628+0.999826686401j) 
2 (0.311981899931+0.309615235755j) 

Si vous voulez l'ampleur des nombres complexes, vous pouvez prendre le module (r en coordonnées polaires):

df.applymap(np.absolute) 

Out: 
      0 
0 1.246490 
1 1.235102 
2 0.439539 

Si vous souhaitez perdre la partie imaginaire, vous pouvez jeter à flotte:

df.astype(np.float64) 

Out: 
      0 
0 0.815555 
1 0.725137 
2 0.311982 
+0

df.applymap (np.absolute) donne une erreur massege: KeyError: ("ufunc 'absolu' ne contenait pas une boucle avec des types correspondant à la signature DTYPE (' sara

+0

Devinant votre message d'erreur vous avez des champs contenant des chaînes (de longueur 22 caractères). Veuillez fournir des exemples de données de votre problème. –

+0

Si vous souhaitez simplement convertir une colonne de nombres complexes en réels (magnitude), vous pouvez utiliser 'df [colname] .apply (np.absolu)' –