2

在pydatatable中,我正在尝试修改指定条件的列值,即DT[i=="text", j="some"]

示例 DT:

py_DT= dt.Frame({'crossing':['ABC','A','B','B','A','A','ABC'],
                 'total' :[2,4,5,6,8,10,12]})

在这里我想'ABC''A'only 替换交叉值,因为我写了下面的示例代码,

尝试1:

py_DT[f.crossing=="ABC", f.crossing=="A"]

尝试2:

py_DT[f.crossing=="ABC", update(f.crossing=="A")]

这些尝试都没有解决,还有其他方法可以解决吗?您能否写信给我如何根据上述要求更新列值?

4

2 回答 2

4

这应该有效:

py_DT[f.crossing == 'ABC', f.crossing] = 'A'
于 2020-01-01T02:03:16.177 回答
1

如果我理解正确,您想替换所有“ABC”值,对吗?在这种情况下,您可以使用df.str.replace()

py_DT['crossing'].str.replace("ABC", "A")
于 2019-12-31T11:08:07.077 回答