Pandas DataFrame 替换不适用于 inplace=True

A. *_*kov 3 python numpy pandas data-science jupyter-notebook

在我的数据框列中,我将 6.3.5、1.8、5.10.0 等版本号保存为对象,因此可能保存为字符串。我想删除没有任何东西的点,所以我得到 635, 18, 5100。我的代码想法是这样的:

for row in dataset.ver:
    row.replace(".","",inplace=True)
Run Code Online (Sandbox Code Playgroud)

问题是,如果我不将其设置为 True,它就会起作用,但我们想覆盖它并保护它。

r.o*_*ook 5

您正在迭代 中的元素DataFrame,在这种情况下,我假设它是类型(或者当您 时str被强制)。 没有理由支持.strreplacestr.replaceinplace=...

你应该这样做:

dataset['ver'] = dataset['ver'].str.replace('.', '')
Run Code Online (Sandbox Code Playgroud)

  • 现有列上的“df.col_name =”可能会产生不良行为,而应使用“df['col_name'] =” (2认同)