如何一次从 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.replace
和 regex=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(',',''))
我有一个数据框,其中所有列都应该是数字。在阅读时,其中一些是用逗号阅读的。我知道可以通过
修复单个列df['x']=df['x'].str.replace(',','')
但是,这仅适用于系列对象,不适用于整个数据框。有没有一种优雅的方法可以将它应用于整个数据框,因为数据框中的每个条目都应该是一个数字。
P.S:为了确保我可以str.replace,我首先使用
将数据框转换为strdf.astype('str')
所以我明白了,一旦逗号被删除,我将不得不将它们全部转换为数字。
数字列没有 ,
,因此不需要转换为字符串,仅使用 DataFrame.replace
和 regex=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(',',''))