J'essaie de créer une trame de données "résultats" avec dans chaque cellule des valeurs calculées et leurs incertitudes, séparées par le symbole ±. J'enregistre ensuite le dataframe dans un csv. J'ai fait l'exemple ci-dessous pour illustrer le problème: lorsque j'ouvre le csv avec textedit (ou que je l'imprime à l'écran), tout fonctionne. Cependant, lorsque j'ouvre (ou importe) le csv dans Excel, le symbole ± est soudainement suivi d'un autre symbole:

J'ai essayé de forcer la variable à une chaîne en utilisant "str ()" et j'ai joué avec le "encoding = 'utf-8'" mais je n'arrive pas à comprendre ce qui ne va pas ici .. J'utilise Python2.7 et Komodo sur un air de macbook.

import os
import pandas as pd

PmSign = (u'\u00B1').encode("utf-8")

columns = ['A']
data = [1,2,3,4,'5 {} 3' .format(PmSign),6]

df = pd.DataFrame(data, columns=columns)

df.to_csv(os.path.join('/Users/python/','UnicodeDFTEST.csv'), encoding='utf-8')
0
Algomas 20 juil. 2015 à 16:37

2 réponses

Meilleure réponse

Essayez ce qui suit:

import os
import pandas as pd

PmSign = (u'\u00B1')

columns = ['A']
data = [1, 2, 3, 4, u'5 {} 3'.format(PmSign), 6]

df = pd.DataFrame(data, columns=columns)
writer = pd.ExcelWriter(os.path.join('/Users/python/','UnicodeDFTEST.xlsx')
df.to_excel(excel_writer=writer, sheet_name="Sheet 1")
writer.save()
0
Martin Evans 20 juil. 2015 à 14:59

Comme @Wander Nauta l'a mentionné, il existe un paramètre File origin. Vous devez utiliser l'assistant d'importation de texte. Essayez ce qui suit:

  1. Démarrez Microsoft Excel.
  2. Ouvrez un classeur vierge.
  3. Sélectionnez l'onglet DATA en haut.
  4. Appuyez sur le bouton From Text.
  5. Choisissez votre fichier UnicodeDFTEST.csv.
  6. Sous File origin, sélectionnez 65001: Unicode (UTF-8) dans la longue liste déroulante.
  7. Appuyez sur Next >
  8. Assurez-vous que le bon délimiteur est utilisé.
0
Martin Evans 20 juil. 2015 à 13:56