我有一个数据框:
jb = pd.DataFrame([ ['No', 75, 2.0], ['Blofeld', 140, 1.9], ['Chiffre', 114, 1.7] ],
index=['b1', 'b5', 'b21'], columns=['Name', 'Weight', 'Height'])
然后,如果我按如下方式进行链式分配,它不会更改jb
. 而且还会触发SettingWithCopyWarning
。
jb[jb.Weight==75]['Height'] = 9
但是如果我切换链式赋值的顺序,它会改变原来的值jb
,但仍然会触发SettingWithCopyWarning
。
jb['Height'][jb.Weight==75] = 9
所以第二个代码仍在生成副本,但为什么它最终会修改原始代码jb
?