3
在我的數據框「數據」我有兩列「趨勢」 &「rtrend」兩列
trend
條件Python的大熊貓循環值具有值-1,0和1
def newfunc(a):
j = -1
for i in a:
j = j+1
x = (j-1)
if data.iloc[j]['trend'] != 0:
return data.iloc[j]['trend']
if data.iloc[j]['trend'] == 0:
return data.iloc[x]['rtrend']
如果trend
等於-1或1,那麼我想設置rtrend
列值等於trend
。
如果trend
等於0,則將rtrend
設置爲等於數據框中上面出現的該系列中的最後一個值。
data['rtrend'] = newfunc(data['trend'])
當前返回的結果全部爲0。
請有人指出我在正確的方向嗎?我確定必須有更好的方法來做到這一點。 (我試過np.where()
這似乎沒有做我以後的)。
@piRSquared :-)謝謝! – Boud
儘可能使用'.loc'來避免setingwithcopy警告。 'df.loc [df.trend!= 0,'trend']' –
@TedPetrou嗯不,因爲在這種情況下,我沒有處理左賦值,我所做的數據框視圖是該作業(左側是新列'rtrend') – Boud