Pandas 切片的原位改性

Pandas 切片的原位改性,pandas,Pandas,这样做最有效的方法是什么(因为replace的参数是一个切片,所以不起作用) DF[DF.col==x].col.replace(…,inplace=True) 一种方法是明确地完成任务: 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

这样做最有效的方法是什么(因为
replace
的参数是一个切片,所以不起作用)

DF[DF.col==x].col.replace(…,inplace=True)

一种方法是明确地完成任务:

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

另一种选择是使用,这可能会更快:

df.update(df.loc[df.a == 3, 'b'].replace({4: 7}))