2015-10-13 223 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)