Pandas:如何根据条件创建布尔列


您可以使用以下基本语法在 pandas DataFrame 中创建基于条件的布尔列:

 df[' boolean_column '] = np. where (df[' some_column '] > 15, True , False )

此特定语法创建一个具有两个可能值的新布尔列:

  • 如果some_column中的值大于 15,则为 True
  • 如果some_column中的值小于或等于 15,则为 False

以下示例展示了如何在实践中使用此语法。

示例:根据 Pandas 中的条件创建布尔列

假设我们有以下 pandas DataFrame,其中包含有关各种篮球运动员的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [5, 17, 7, 19, 12, 13, 9, 24]})

#view DataFrame
print (df)

  team points
0 to 5
1 to 17
2 to 7
3 to 19
4 B 12
5 B 13
6 B 9
7 B 24   

我们可以使用以下代码创建一个名为good_player的新列,如果点列中的值大于 15,则该列返回True ,否则返回False

 import numpy as np

#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, True , False )

#view updated DataFrame
print (df)

  team points good_player
0 To 5 False
1 To 17 True
2 To 7 False
3 To 19 True
4 B 12 False
5 B 13 False
6 B 9 False
7 B 24 True

请注意,名为good_player 的新列仅包含两个值: TrueFalse

我们可以使用dtypes()函数来验证新的good_player列确实是布尔列:

 #display data type of good_player column
df[' good_player ']. dtype

dtype('bool')

新的good_player列确实是一个布尔列。

另请注意,如果需要,您可以返回10等数字值,而不是TrueFalse

 import numpy as np

#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, 1 , 0 )

#view updated DataFrame
print (df)

  team points good_player
0 to 5 0
1 To 17 1
2 to 7 0
3 A 19 1
4 B 12 0
5 B 13 0
6 B 9 0
7 B 24 1

如果列中的相应值大于 15,则good_player列现在包含1

否则,它包含值0

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何在 Pandas 中根据多个条件选择行
如何根据 Pandas 中的条件创建新列
如何根据多个条件过滤 Pandas DataFrame

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注