2016-09-20 99 views
-3

Table 如何從混合字符串刪除單個字符在Python

我有一個表(請參考圖片)這個表我想從每一行我怎樣才能在Python做刪除「A」字符。

下面是一個使用regexe_replace我的代碼,但是代碼沒有經過優化我想優化代碼

def re(s): 
     return regexp_replace(s, "A", "").cast("Integer") 

    finalDF = finalD.select(re(col("C0")).alias("C0"),col("C1"), 
         re(col("C2")).alias("C2"), 
         re(col("C3")).alias("C3"),col("C4"), 
         re(col("C5")).alias("C5"), 
         re(col("C6")).alias("C6"),col("C7"), 
         re(col("C8")).alias("C8"), 
         re(col("C9")).alias("C9"),col("C10"), 
         re(col("C11")).alias("C11"),col("C12"), 
         re(col("C13")).alias("C13"), 
         re(col("C14")).alias("C14"),col("C15"), 
         re(col("C16")).alias("16"),col("C17"), 
         re(col("C18")).alias("18"), 
         re(col("C19")).alias("C19"),col("Label")) 
    finalDF.show(2) 

預先感謝您。

+0

如果我是你,我不會定義一個're'函數。它將與[正則表達式操作模塊](https://docs.python.org/3.5/library/re.html)名稱衝突。你能舉出更多的細節,例如,你的輸入數據來自哪裏?這是來自數據庫嗎? 'regexp_replace'在哪裏定義?理想情況下,您可以提供一個我們可以理解的完整程序 – EvensF

回答

2

爲什麼是正則表達式?正則表達式將被殺死。

如果你已經給出格式的數據,然後使用替換功能如下:master.csv的

內容:

A11| 6|A34|A43| 
A11| 6|A35|A44| 

代碼:

with open('master.csv','r') as fh: 
    for line in fh.readlines(): 
     print "Before - ",line 
     line = line.replace('A','') 
     print "After - ", line 
     print "---------------------------" 

輸出:

C:\Users\dinesh_pundkar\Desktop>python c.py 
Before - A11| 6|A34|A43| 
After - 11| 6|34|43| 
--------------------------- 
Before - A11| 6|A35|A44| 
After - 11| 6|35|44| 
--------------------------- 

代碼在一個鏡頭從完整的數據替換 'A'(不含一行去一行)

with open("master.csv",'r') as fh: 
    data = fh.read() 
    data_after_remove = data.replace('A','') 
    print "Before remove ..." 
    print data 
    print "After remove ..." 
    print data_after_remove 

輸出:

C:\Users\dinesh_pundkar\Desktop>python c.py 
Before remove... 
A11| 6|A34|A43| 
A11| 6|A35|A44| 
After remove ... 
11| 6|34|43| 
11| 6|35|44| 

C:\Users\dinesh_pundkar\Desktop>