如何用 pandas 编写案例陈述(附示例)


case 语句是一种循环条件并在满足第一个条件时返回值的语句类型。

在 Pandas DataFrame 中实现 case 语句的最简单方法是使用NumPywhere()函数,该函数使用以下基本语法:

 df[' new_column '] = np. where (df[' col2 ']<9, 'value1',
                   n.p. where (df[' col2 ']<12, 'value2',
                   n.p. where (df[' col2 ']<15, 'value3', 'value4')))

这个特定的函数查看名为col2的列中的值并返回:

  • value1 ” 如果 col2 中的值小于 9
  • value2 ” 如果 col2 中的值小于 12
  • value3 ” 如果 col2 中的值小于 15
  • value4 ” 如果前面的条件都不成立

下面的例子展示了如何在实际中使用这个功能。

示例:Pandas 中的 case 语句

假设我们有以下 pandas DataFrame:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' player ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' points ': [6, 8, 9, 9, 12, 14, 15, 17, 19, 22]})

#view DataFrame
df

	player points
0 1 6
1 2 8
2 3 9
3 4 9
4 5 12
5 6 14
6 7 15
7 8 17
8 9 19
9 10 22

我们可以使用以下语法编写一个 case 语句,该语句创建一个名为class的新列,其值由Points列中的值确定:

 #add 'class' column using case-statement logic
df[' class '] = np. where (df[' points ']<9, 'Bad',
              n.p. where (df[' points ']<12, 'OK',
              n.p. where (df[' points ']<15, 'Good', 'Great')))

#view updated DataFrame
df

	player points class
0 1 6 Bad
1 2 8 Bad
2 3 9 OK
3 4 9 OK
4 5 12 Good
5 6 14 Good
6 7 15 Great
7 8 17 Great
8 9 19 Great
9 10 22 Great

case 语句查看列中的值并返回:

  • 如果分数栏中的值小于 9,则为“
  • 如果点列中的值小于 12,则“确定
  • 如果分数栏中的值小于 15,则为“
  • 如果前面的条件都不成立,则“很好

注意:您可以在此处找到NumPywhere()函数的完整文档。

其他资源

以下教程解释了如何在 Pandas 中执行其他常见任务:

如何根据 Pandas 中的条件创建新列
如何在多个条件下使用 NumPyWhere() 函数

添加评论

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