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。
我有一个类似
的数据框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。