Python Pandas - 'DataFrame' 对象没有属性 'str' - .str.replace 错误

Luc*_*k_R 3 python str-replace pandas

我正在尝试将 panda 数据框中的 80 列替换为“”。我创建了一个要迭代的标头列表:

headers = ['h1', 'h2', 'h3'... 'h80']
Run Code Online (Sandbox Code Playgroud)

然后我使用标题列表来替换多列字符串值,如下所示:

dataFrame[headers] = dataFrame[headers].str.replace(',','')
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误: AttributeError: 'DataFrame' object has no attribute 'str' 当我仅在一个标头上尝试相同的操作时,它效果很好,并且我需要使用“str.replace”,因为唯一的“replace”方法确实遗憾的是没有取代“,”。

谢谢

Aks*_*gal 8

使用 df.apply

pd.Series.str.replace是一种不适用于数据帧的系列方法。您可以apply改为在每行/列系列上使用。

dataFrame[headers] = dataFrame[headers].apply(lambda x: x.str.replace(',',''))
Run Code Online (Sandbox Code Playgroud)

使用 df.applymap

或者,您可以将applymap每个单元格视为字符串并直接对其使用替换 -

dataFrame[headers] = dataFrame[headers].applymap(lambda x: x.replace(',',''))
Run Code Online (Sandbox Code Playgroud)

使用 df.replace

您还可以使用 df.replace 这是一种可直接在所有选定列中替换 df 中的值的方法。但是,为此目的,您必须设置regex=True

dataFrame[headers] = dataFrame[headers].replace(',','',regex=True)
Run Code Online (Sandbox Code Playgroud)