2016-09-20 110 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>