如何一次从熊猫的所有列中删除逗号

时间:2019-07-09 07:25:29

标签: python string pandas replace comma

我有一个数据框,其中所有列均应为数字。阅读时,其中一些阅读者用逗号隔开。我知道

可以固定一列
df['x']=df['x'].str.replace(',','')

但是,这仅适用于系列对象,不适用于整个数据框。有没有一种优雅的方法将其应用于整个数据帧,因为数据帧中的每个条目都应该是一个数字。

P.S:为确保可以替换str,我首先使用

将数据帧转换为str
df.astype('str')

因此,我知道,一旦删除逗号,我将不得不将它们全部转换为数字。

3 个答案:

答案 0 :(得分:2)

数字列没有,,因此没有必要转换为字符串,只需将DataFrame.replaceregex=True一起使用以替换子字符串:

df = df.replace(',','', regex=True)

或者:

df.replace(',','', regex=True, inplace=True)

最后将字符串列转换为数字,谢谢@ anki_91:

c = df.select_dtypes(object).columns
df[c] = df[c].apply(pd.to_numeric,errors='coerce')

答案 1 :(得分:1)

好吧,你可以简单地做:

df = df.apply(lambda x: x.str.replace(',', ''))

希望有帮助!

答案 2 :(得分:-5)

如果您只想操作一列:

df.column_name = df.column_name.apply(lambda x : x.replace(',',''))