比方說,我有標誌的系列在數據幀:更改值在具體指標
a=pd.DataFrame({'flag':[0,1,0,0,1]})
,我要改變的是在一個特定的索引標記的值:
lind=[0,1,3]
這是一個簡單的解決方案:
def chnflg(series,ind):
if series.ix[ind]==0:
series.ix[ind]=1
else:
series.ix[ind]=0
map(partial(chnflg,a),lind)
它工作正常,但有兩個問題:第一個是,它使在原地發生了變化,而我想在DataFrame中添加一個新的系列。畢竟這不是什麼大問題。
第二點是它似乎不夠pythonic。有沒有可能做得更好?
我想要所有的值(更改和不變),而不是就地。在這種情況下,我可以解決使用您的解決方案:a ['nflag'] = a ['flag'],然後使用您的就地解決方案 – user2988577