2015-10-13 37 views
1

我有一個CSV文件,裏面好像有這有那看起來像垃圾數據的幾個值刪除特定的字符:AA‡_¤Ã<çéA_A ...從熊貓數據幀

我有進口將該文件轉換爲熊貓數據框。我如何擺脫這些角色?我想刪除具有這些字符的單元格的內容,並將其放入標誌值(類似於-99999)。該表具有混合的數據類型。

import pandas as pd 
import codecs 
import unicodedata 
import csv 
import StringIO 

testData = pd.read_csv('Data.csv', encoding="iso-8859-1", engine='python') 

/使用編碼UTF-8給了我關於無效起始字節錯誤,使用默認引擎也不起作用。/

有什麼建議嗎?

+2

什麼是文件的編碼? – BrenBarn

+0

不確定。我把它作爲一個excel csv。有沒有辦法確定編碼? –

+0

你可以嘗試使用各種「編碼猜測」。但是真正的編碼是當你給出一個文件時你應該​​被告知的東西(例如,如果你從某個地方下載它,你得到它的地方應該提及編碼是什麼)。 – BrenBarn

回答

1

如果你知道你願意接受什麼樣的角色,你可以使用正則表達式來過濾你的價值觀,是這樣的:

testData['stringcol'].where(testData['stringcol'].str.contains('[^A-Za-z0-9\s]'), 
-999999)