在数据框的列中,我将版本号(如6.3.5、1.8、5.10.0)保存为对象,因此也可能保存为字符串。我想删除所有点,所以我得到635、18、5100。我的代码想法是这样的:
for row in dataset.ver:
row.replace(".","",inplace=True)
如果我没有将True设置为True,那是可行的,但是我们要覆盖并保护它。
答案 0 :(得分:1)
您正在遍历DataFrame
中的元素,在这种情况下,我假设它的类型为str
(或在您str
时被强制为replace
) 。 str.replace
没有inplace=...
的参数。
您应该改为这样做:
dataset['ver'] = dataset['ver'].str.replace('.', '')
答案 1 :(得分:1)
Sander van den Oord在评论中非常正确地指出:
dataset['ver'].replace("[.]","", inplace=True, regex=True)
这是我们在Pandas中的列上进行操作的方式,因为通常,Pandas会尝试通过for
循环进行优化。 Pandas开发人员认为for循环是Python中按行操作的最不理想的模式(请参见here。)