如何 modify/update Pydatatable 条件下的列值?
How to modify/update column values on a condition in Pydatatable?
在 pydatatable 中,我正在尝试修改指定条件的列值,即 DT[i=="text", j="some"]
样本数据集:
py_DT= dt.Frame({'crossing':['ABC','A','B','B','A','A','ABC'],
'total' :[2,4,5,6,8,10,12]})
这里我只想用'A'
替换交叉值'ABC'
,为此我写了下面的示例代码,
尝试 1:
py_DT[f.crossing=="ABC", f.crossing=="A"]
尝试 2:
py_DT[f.crossing=="ABC", update(f.crossing=="A")]
None个都解决了,请问还有其他办法解决吗?您能否写信告诉我如何根据上述要求更新列值?
如果我没理解错的话,您想要替换所有 'ABC' 值,对吗?在这种情况下,您可以使用 df.str.replace()
:
py_DT['crossing'].str.replace("ABC", "A")
这应该有效:
py_DT[f.crossing == 'ABC', f.crossing] = 'A'
在 pydatatable 中,我正在尝试修改指定条件的列值,即 DT[i=="text", j="some"]
样本数据集:
py_DT= dt.Frame({'crossing':['ABC','A','B','B','A','A','ABC'],
'total' :[2,4,5,6,8,10,12]})
这里我只想用'A'
替换交叉值'ABC'
,为此我写了下面的示例代码,
尝试 1:
py_DT[f.crossing=="ABC", f.crossing=="A"]
尝试 2:
py_DT[f.crossing=="ABC", update(f.crossing=="A")]
None个都解决了,请问还有其他办法解决吗?您能否写信告诉我如何根据上述要求更新列值?
如果我没理解错的话,您想要替换所有 'ABC' 值,对吗?在这种情况下,您可以使用 df.str.replace()
:
py_DT['crossing'].str.replace("ABC", "A")
这应该有效:
py_DT[f.crossing == 'ABC', f.crossing] = 'A'