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

Pag*_*Max 14 python string replace comma pandas

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

df['x']=df['x'].str.replace(',','')
Run Code Online (Sandbox Code Playgroud)

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

PS:为了确保我可以 str.replace,我首先通过使用将数据帧转换为 str

df.astype('str')
Run Code Online (Sandbox Code Playgroud)

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

jez*_*ael 26

数字列没有,,所以转换为字符串是没有必要的,只有使用DataFrame.replaceregex=True子字符串替换:

df = df.replace(',','', regex=True)
Run Code Online (Sandbox Code Playgroud)

或者:

df.replace(',','', regex=True, inplace=True)
Run Code Online (Sandbox Code Playgroud)

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

c = df.select_dtypes(object).columns
df[c] = df[c].apply(pd.to_numeric,errors='coerce')
Run Code Online (Sandbox Code Playgroud)

  • 好的,明白了:`to_replace: [...], str: string **完全**匹配 to_replace 将被值替换` (2认同)