我有一个数据框,其中所有列均应为数字。阅读时,其中一些阅读者用逗号隔开。我知道
可以固定一列df['x']=df['x'].str.replace(',','')
但是,这仅适用于系列对象,不适用于整个数据框。有没有一种优雅的方法将其应用于整个数据帧,因为数据帧中的每个条目都应该是一个数字。
P.S:为确保可以替换str,我首先使用
将数据帧转换为strdf.astype('str')
因此,我知道,一旦删除逗号,我将不得不将它们全部转换为数字。
答案 0 :(得分:2)
数字列没有,
,因此没有必要转换为字符串,只需将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')
答案 1 :(得分:1)
好吧,你可以简单地做:
df = df.apply(lambda x: x.str.replace(',', ''))
希望有帮助!
答案 2 :(得分:-5)
如果您只想操作一列:
df.column_name = df.column_name.apply(lambda x : x.replace(',',''))