2017-08-14 211 views
1

比方說,我們有一個列A,B和C的一個數據幀:遍歷數據幀逐一(大熊貓)

df = pd.DataFrame(columns =('A','B','C'), index=range(1)) 

列保存數值的三行:

0  A  B  C 
1 2.1 1.8 1.6 
2 2.01 1.81 1.58 
3 1.9 1.84 1.52 

如何是否循環遍歷從1到3的每一行,然後執行if語句,包括添加一些變量:

if B1 > 1.5 
    calc_temp = A1*10 
    calc_temp01 = C1*-10 
if B2 > 1.5 
    calc_temp = A2*10 
    calc_temp01 = C2*-10 
if B3 >1.5 
    calc_temp = A3*10 
    calc_temp01 = C3*-10 

I上面甚至有可能嗎?它必須知道某種類型的範圍,即帶有某種計數器的全範圍數據集編號,是的? if語句應該引用該特定行。

+0

您可以df.iterrows()使用'爲行:' –

+0

由於要更換calc_temp'的'已經計算出的值和'calc_temp01',止跌」 t calc_temp和calc_temp01的最終值取決於最後出現的B大於1.5的A和C的值 –

回答

2

我想你需要iterrows

for i, row in df.iterrows(): 
    if row['B'] > 1.5: 
     calc_temp = row['A'] *10 
     calc_temp01 = row['C'] *-10 
+1

如果你正在訪問一個循環中的行,再次調用'.loc'?也可以在範圍內使用'for我(len(df)):' –

+1

@cᴏʟᴅsᴘᴇᴇᴅ - 有時過於複雜,謝謝你的成功。 – jezrael

+0

@jezrael - 燦爛,它的工作。如果我們在繪圖不斷更新的同時通過迭代計算calc_temp,該怎麼辦?如何實現這一目標? – Bondeaux