这样做最有效的方式是什么(由于replace
的参数是切片,因此无法正常工作?)
DF[DF.col == x].col.replace( ... , inplace=True)
答案 0 :(得分:1)
一种方法是明确地进行任务:
In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
In [12]: df
Out[12]:
a b
0 1 2
1 3 4
In [13]: df.loc[df.a == 3, 'b'] = df.loc[df.a == 3, 'b'].replace({4: 7})
In [14]: df
Out[14]:
a b
0 1 2
1 3 7
另一种选择是使用update
,这可能会更快:
df.update(df.loc[df.a == 3, 'b'].replace({4: 7}))