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

Python 如何一次从pandas中的所有列中删除逗号,python,string,pandas,replace,comma,Python,String,Pandas,Replace,Comma,我有一个数据框,所有的列都应该是数字。在阅读时,其中一些是用逗号阅读的。我知道一根柱子可以用 df['x']=df['x'].str.replace(',','') 但是,这仅适用于系列对象,而不适用于整个数据帧。是否有一种优雅的方法将其应用于整个数据帧,因为数据帧中的每个条目都应该是一个数字 注意:为了确保我可以替换str.replace,我首先使用 df.astype('str') 所以我明白了,一旦删除逗号,我将不得不将它们全部转换为数字 数值列没有,,因此无需转换为字符串,仅与reg

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

df['x']=df['x'].str.replace(',','')
但是,这仅适用于系列对象,而不适用于整个数据帧。是否有一种优雅的方法将其应用于整个数据帧,因为数据帧中的每个条目都应该是一个数字

注意:为了确保我可以替换str.replace,我首先使用

df.astype('str')

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

数值列没有
,因此无需转换为字符串,仅与
regex=True
一起使用以替换子字符串:

df = df.replace(',','', regex=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(',',''))

此处是否需要
regex=True
?我想我遗漏了一些东西,明白了:
to_replace:[…],str:string**正好**匹配到_replace的内容将被替换为value
谢谢@Jezrael。这很有效。我自己永远也搞不清楚最后一个将字符串、列转换为数字的部分!当我尝试用同样的方法替换点时,这一行用空值替换所有单元格,并得到一个空数据框。df.replace('.','',regex=True,inplace=True)。为什么“.”与每个条目都匹配?@SuperUser-您可以在展示了一种只操作一列的方法之后,检查OP是否明确询问了如何操作整个数据帧。所以这没有帮助。
df.column_name = df.column_name.apply(lambda x : x.replace(',',''))