2017-06-12 32 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 

更多的文档。