[英]Text Pre-processing + Python + CSV : Removing special characters from a column of a CSV
我正在研究文本分類問題。 我的CSV文件包含一個名為“description”的列,用於描述事件。 不幸的是,除了英文單詞之外,該專欄還有很多特殊字符。 有時,連續的整個字段都充滿了這樣的字符,或者有時,很少有單詞具有這樣的特殊字符,其余的都是英文單詞。 我向你展示了兩個不同行的兩個標本字段:
हर वर्ष की तरह इस वर्ष भी सिंधु सेना द्वारा आयोजित सिंधी प्रीमियर लीग फुटबॉल टूर्नामेंट का आयोजन एमबीएम ग्राउंड में करने जा रही है जिसमें अंडर-19 टीमें भाग लेती है आप सभी से निवेदन है समाज के युवाओं को प्रोत्साहन करने अवश्य पधारें
Unwind on the strums of Guitar & immerse your soul into the magical vibes of music! ️? ️?..Guitar Night By Ashmik Patil.July 19, 2018.Thursday.9 PM Onwards.*Cover charges applicable...#GuitarNight #MusicalNight #MagicalMusic #MusicLove #Party #Enjoy #TheBarTerminal #Mumbaikars #Mumbai
在第一個中,整個字段中充滿了這些不可讀的字符,而在第二種情況下,只有少數這樣的字符存在。 其余的都是英文單詞。
我只想刪除那些保留英語單詞的特殊字符,因為我需要那些英語單詞在后期形成一個單詞。
如何用Python實現(我使用jupyter筆記本)?
您可以將字符串編碼為ascii
並ignore
錯誤。
>>> text = 'Something with special characters á┬ñ┬╡├á┬ñ┬░├á┬Ñ┬ì├á┬ñ┬╖'
>>> text = text.encode('ascii', 'ignore')
這將為您提供一個二進制對象,您可以再次解碼為utf
>>> text
b'Something with special characters '
>>> text = text.decode('utf')
>>> text
'Something with special characters '
您可以使用pandas將csv文件讀入數據幀。 使用:
import pandas as pd
df = pd.read_csv(fileName,convertor={COLUMN_NUMBER:func})
其中func是一個函數,它接受一個字符串並刪除特殊字符。 這可以用不同的方式完成,使用正則表達式,但這里是一個簡單的
import string
def func(strg):
return ''.join(c for c in strg if c in string.printable[:-5])
或者,您可以先讀取數據幀,然后應用於更改描述列。 即。
import pandas as pd
df = pd.read_csv(fileName)
df['description'] = df['description'].apply(func)
或使用正則表達式
df['description'] = df['description'].str.replace('[^A-Za-z _]','')
string.printable[:-5 ]
是字符集'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!“#$%&\\'()* +, - 。/:; <=>?@ [\\ _] ^ _` {|}〜'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.