0
我正在使用一個熊貓數據框。我試圖創建一個新的列data ['Labels'],它包含由列數據['diff']中第i行和第i + n行之間的值變化確定的標籤,用於整個數據幀長度。python dataframe rows:if row + n> value at row,set variable to A
我想象下面的東西,然而這回我的錯誤:
for i in range(len(data['diff'])-1):
data.loc[data['diff'][i] >= data['diff'][i+n], 'Labels'] = 'A'
data.loc[data['diff'][i] < data['diff'][i+n], 'Labels'] = 'B'
輸出示例:
index diff label
9 117.32 B
10 108.32 A
11 125.36 A
12 127.36 A
13 139.28 A
14 141.22 A
15 147.89 A
16 153.89 B
17 153.89 B
18 156.87 B
19 168.84 B
20 161.04 B
21 172.04 B
24 175.16 B
22 164.04 B
23 164.16 B
27 175.16 B
25 149.16 A
你可以做'數據[「標籤」] = NP:
每當在馬克斯比當前值,則應用標籤
A
.where(data ['diff']> = data ['diff']。shift(),'A','B') – EdChumHi Ed, Thanks!這對於比較i和i + 1非常有用,但是我剛剛意識到我希望轉換也包括data ['diff'] [i]> = data ['diff] [i + n]的可能性。基本上,我想創建一個標籤,這取決於數據['差異']時間序列中任何地方的變化。 – wsp1morlet
改變你的要求是不好的形式,你的評論還需要進一步的解釋嗎?或者你想比較'i'對一系列的行嗎? – EdChum