2017-06-12 64 views
0

我有一個數據幀像python3修改行基於條件

A B  C 
1 4  x 
2 8  y 
3 7  z 
4 12  y 
5 10  b 

我需要修改B列基於條件類似

if B <= 5 then B = 1 
if B > 5 and B <= 10 then B = 2 
if B > 10 and B < 15 then B = 3 

讓我的數據框變成

A B  C 
1 1  x 
2 2  y 
3 2  z 
4 3  y 
5 2  b 

我很好,如果我必須先添加一個新的列然後刪除列B.任何人都可以幫助pl緩解?

回答

0

您應該使用apply函數來執行此操作。

def check(row): 
    if (row['B']) <= 5: 
     return 1 
    elif (row['B'] > 5) and (row['B'] <= 10): 
     return 2 
    elif (row['B'] > 10) and (row['B'] <= 15): 
     return 3 

這些將適用於每行的功能,然後您可以執行檢查。

df['B'] = df.apply(check, axis = 1) 

然後將所得DF看起來像:可用here

A B  C 
1 1  x 
2 2  y 
3 2  z 
4 3  y 
5 2  b 

更多的文檔。