2017-05-05 106 views
2

我正在做一些网页扫描,并希望删除部分字符串。熊猫字符串替换错误Python

PlayerDataHeadings = soup.select(".auflistung th") 
PlayerDataItems = soup.select(".auflistung td") 

    PlayerData = pd.DataFrame(
     {'PlayerDataHeadings': PlayerDataHeadings, 
     'PlayerDataItems': PlayerDataItems 
     }) 

上面的代码创建一个数据框并按预期工作。在'PlayerDataHeadings'列中,在开始处有一个不需要的<th>,在我想要移除的每个值的末尾有</th>

我使用的代码是:

PlayerData['PlayerDataHeadings'].replace(
    to_replace['<th>', ':</th>'], 
    value='', 
    inplace=True 
    ) 

这将返回 “NameError:名字 'to_replace' 没有定义” 的错误。

to_replace= 

或省略的关键字,并添加regex=True

PlayerData['PlayerDataHeadings'].replace(['<th>', ':</th>'], '', inplace=True, regex=True) 

样品

就如何解决这一问题或更好的选择将是巨大的

回答

0

看来你错过=有什么想法:

PlayerData = pd.DataFrame({'PlayerDataHeadings':['<th>a:</th>','g']}) 
print (PlayerData) 
    PlayerDataHeadings 
0  <th>a:</th> 
1     g 
    PlayerDataHeadings 

PlayerData['PlayerDataHeadings'].replace(['<th>', ':</th>'], '', inplace=True, regex=True) 
print (PlayerData) 
    PlayerDataHeadings 
0     a 
1     g 

与所有关键字:

PlayerData['PlayerDataHeadings'].replace(to_replace=['<th>', ':</th>'], 
             value='', 
             inplace=True, 
             regex=True) 
print (PlayerData) 
    PlayerDataHeadings 
0     a 
1     g 
+0

感谢jezrael,当我运行您的示例代码工作,但是当我在我的脚本中运行它不会取代的人物,但也不会返回错误。 任何想法或想法为什么? – DenJJ

+0

难以发现没有数据的问题。但似乎你不能代替,因为有些区别。如果数据不确定,可以创建[pickle](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_pickle.html)文件 - 'PlayerData.to_pickle('file.pkl ')'并将其发送到我的个人资料中的电子邮件? – jezrael