如何替换数据框中*的所有实例?

时间:2019-08-10 23:53:01

标签: python-3.x dataframe replace

我想从我的数据框中删除所有“ *”实例,尤其是在“名称”列中。

     Rk     Name                  Team    IP   R
887  888.0  Huascar Ynoa\ynoahu01  ATL   3.0   6
888  889.0  Alex Young*\youngal01  ARI  34.2  10   

我已经尝试了以下代码片段以及仅能找到的任何内容(regex = True和其他变体)。还尝试对字符串分别使用for循环,但是每次我打印新的Series / Dataframe时,*仍然存在

pitcher = pitcher.replace('*', '')

pitcher['Name'] = pitcher['Name'].replace('*', '')

newdf = pd.DataFrame()
newdf['newname'] = pitcher['Name'].replace('*', '')

最简单的主意会很棒。我敢肯定有很多方法可以做到这一点。

1 个答案:

答案 0 :(得分:1)

要在数据框中的任何位置替换'*',我们首先必须找到所有string列,然后在此处替换'*'。字符串具有object类型,因此在大多数情况下都可以使用:

for c in pitcher.select_dtypes(['object']).columns:
    pitcher.loc[:,c] = pitcher.loc[:,c].str.replace('*','')

请注意,混合类型列或其他对象类型列(字典,列表等)也属于object类型。在这种情况下,我们可以使用:

pitcher = pitcher.applymap(lambda x: x.replace('*','') if isinstance(x,str) else x)