我有一个数据框,其中所有列都应该是数字。在阅读时,其中一些是用逗号阅读的。我知道可以通过以下方式修复单个列
df['x']=df['x'].str.replace(',','')
但是,这仅适用于系列对象,不适用于整个数据框。是否有一种优雅的方法将其应用于整个数据帧,因为数据帧中的每个条目都应该是一个数字。
P.S:为了确保我可以 str.replace,我首先使用
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')
关于python - 如何一次从 Pandas 的所有列中删除逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56947333/