我想从我的数据框中删除所有“ *”实例,尤其是在“名称”列中。
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('*', '')
最简单的主意会很棒。我敢肯定有很多方法可以做到这一点。
答案 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)