我試圖用'€'作爲分隔符將一個熊貓數據幀寫入一個csv。將熊貓寫入CSV與歐元符號分隔符的錯誤
data.to_csv(file_path, sep = '€')
但是,我得到的錯誤:
TypeError: "delimiter" must be an 1-character string
我怎樣才能解決這個問題? 我必須使用歐元符號作爲分隔符
我試圖用'€'作爲分隔符將一個熊貓數據幀寫入一個csv。將熊貓寫入CSV與歐元符號分隔符的錯誤
data.to_csv(file_path, sep = '€')
但是,我得到的錯誤:
TypeError: "delimiter" must be an 1-character string
我怎樣才能解決這個問題? 我必須使用歐元符號作爲分隔符
時間切換到蟒3.
這是因爲通過默認字符串爲ASCII在python 2. ASCII字符1個字節(因此其範圍爲0到127)。這不足以表示所有字符;在這種情況下'€'。代表這3個字節是必需的。
因此世界切換到unicode。其中有更高的範圍。幸運的是,python3的所有字符串都使用unicode。
在python3 data.to_csv(file_path, sep = '€')
將正常工作。
您可以使用僅使用一個字節編碼「€」,像ISO8859-15或CP1252編碼:
df = pd.DataFrame([[1, 2, 3], [4, 5, 6]])
sep = u'€'.encode('iso8859-15')
result = df.to_csv(sep=sep)
print result.decode('iso8859-15')
€0€1€2
0€1€2€3
1€4€5€6
請注意,這不會在Python 3工作,其中sep
必須是unicode字符串。
我在Python3中遇到了同樣的問題。
此代碼的工作對我來說:
df = pd.read_csv('', sep='‰', engine='python', encoding='utf-8')
€是一個特殊字符,以便它不單個字符...使用另一個分隔符一樣 - 或者標籤......只是不使用特殊字符 –
不幸的是我必須使用歐元符號 – Menkes
使用正則表達式定界符然後 –