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

How to remove commas from ALL the column in pandas at once

我有一个数据框,其中所有列都应该是数字。在阅读时,其中一些是用逗号阅读的。我知道可以通过

修复单个列
df['x']=df['x'].str.replace(',','')

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

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

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

所以我明白了,一旦逗号被删除,我将不得不将它们全部转换为数字。

数字列没有 ,,因此不需要转换为字符串,仅使用 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')

嗯,你可以简单地做:

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

希望对您有所帮助!

如果您只想操作一列:

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