2015-07-20 23 views
0

我試圖在每個單元格中使用「±」符號分隔計算值和它們的不確定性來製作「結果」數據框。然後我將數據幀保存到csv。 我已經在下面的例子中說明了這個問題:當我用textedit打開csv(或打印到屏幕)時,它一切正常。但是,當我在excel中打開(或導入)csv時,突然出現±符號的另一個符號:Â。我試着用「str()」強制變量爲字符串,並用「encoding ='utf-8'」來玩弄,但我似乎無法弄清楚這裏出了什麼問題。 我在MacBook Air上使用Python2.7和Komodo。在excel中打開時,熊貓數據框中的unicode搞砸了

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

確定Excel中知道,該文件是UTF-8?當你導入你的文件時,應該有一個下拉菜單,說'文件來源'或類似的東西。確保它設置爲UTF。 ([更多信息])(http://stackoverflow.com/a/6488070/182402)) –

回答

0

嘗試以下操作:

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

酷!我確實看過,但不能得到它的工作..謝謝! – Algomas

+0

太棒了,很高興它的工作。請注意在數據行中添加'u'。 –

0

如@Wander諾塔提到的,有一個File origin設置。您需要使用文本導入嚮導。請嘗試以下操作:

  1. 啓動Microsoft Excel。
  2. 打開一個空白工作簿。
  3. 選擇頂部的DATA選項卡。
  4. 按下From Text按鈕。
  5. 選擇您的UnicodeDFTEST.csv文件。
  6. 根據File origin從長下拉列表中選擇65001: Unicode (UTF-8)
  7. Press Next >
  8. 確保使用正確的分隔符。
+0

感謝您的建議,但如果我這樣做,±符號完全消失。另外,我希望有一個Python修復程序,這樣我就可以打開csv文件來打開它(這更容易/更快速)。 目前我這樣做,然後用一個有效的空間替換額外的符號,但有點愚蠢。 – Algomas

+0

您可以考慮使用不同的Python庫以xlsx格式直接編寫文件,從而避免任何可能的CSV轉換問題。我還沒有嘗試過使用UTF-8格式。 –