python3 根据条件修改数据框中的行

python3 modifying rows in a dataframe based on a condition

我有一个类似

的数据框
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 列。有人可以帮忙吗?

您应该使用 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 将如下所示:

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

更多文档可用 here