Python Pandas - 'DataFrame' object 没有属性 'str' - .str.replace 错误
Python Pandas - 'DataFrame' object has no attribute 'str' - .str.replace error
我正在尝试将 panda 数据框中的 80 列的“,”替换为“”。
我已经创建了这个 headers 的列表来迭代:
headers = ['h1', 'h2', 'h3'... 'h80']
然后我使用 header 的列表来替换多列字符串值,如下所示:
dataFrame[headers] = dataFrame[headers].str.replace(',','')
这给了我这个错误:AttributeError: 'DataFrame' object 没有属性 'str'
当我只在一个 header 上尝试同样的方法时,效果很好,我需要使用“str.replace”,因为唯一的“替换”方法遗憾的是不会替换“,”。
谢谢
使用df.apply
pd.Series.str.replace
是一种不适用于数据帧的系列方法。您可以在每个 row/column 系列上使用 apply
。
dataFrame[headers] = dataFrame[headers].apply(lambda x: x.str.replace(',',''))
使用df.apply地图
或者,您可以使用 applymap
并将每个单元格视为一个字符串并直接对其使用替换 -
dataFrame[headers] = dataFrame[headers].applymap(lambda x: x.replace(',',''))
使用df.replace
您还可以使用 df.replace,这是一种可用于直接跨所有选定列替换 df 中的值的方法。但是,为此您必须设置 regex=True
dataFrame[headers] = dataFrame[headers].replace(',','',regex=True)
我正在尝试将 panda 数据框中的 80 列的“,”替换为“”。 我已经创建了这个 headers 的列表来迭代:
headers = ['h1', 'h2', 'h3'... 'h80']
然后我使用 header 的列表来替换多列字符串值,如下所示:
dataFrame[headers] = dataFrame[headers].str.replace(',','')
这给了我这个错误:AttributeError: 'DataFrame' object 没有属性 'str' 当我只在一个 header 上尝试同样的方法时,效果很好,我需要使用“str.replace”,因为唯一的“替换”方法遗憾的是不会替换“,”。
谢谢
使用df.apply
pd.Series.str.replace
是一种不适用于数据帧的系列方法。您可以在每个 row/column 系列上使用 apply
。
dataFrame[headers] = dataFrame[headers].apply(lambda x: x.str.replace(',',''))
使用df.apply地图
或者,您可以使用 applymap
并将每个单元格视为一个字符串并直接对其使用替换 -
dataFrame[headers] = dataFrame[headers].applymap(lambda x: x.replace(',',''))
使用df.replace
您还可以使用 df.replace,这是一种可用于直接跨所有选定列替换 df 中的值的方法。但是,为此您必须设置 regex=True
dataFrame[headers] = dataFrame[headers].replace(',','',regex=True)