Pandas:“如果列中有值则”的公式


您可以在 pandas 中使用以下语法根据另一列的值将值分配给某一列:

 df[' new '] = df[' col ']. map ( lambda x: ' new1 ' if ' A ' in x else ' new2 ' if ' B ' in x else '')

这种特殊的语法将创建一个名为“new”的新列,它将采用以下值:

  • 如果col中的值等于 A,则new1。
  • 如果col中的值等于 B,则new2。
  • 如果col中的值等于任何其他值,则为空字符串。

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

示例:在 Pandas 中使用“If Value in Column then”的公式

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C'],
                   ' points ': [14, 22, 25, 34, 30, 12, 10, 18]})

#view DataFrame
print (df)

  team points
0 to 14
1 to 22
2 to 25
3 to 34
4 B 30
5 B 12
6 C 10
7 C 18

现在假设我们要创建一个名为city的新列,其值取决于team列中的相应值。

我们可以使用以下语法来做到这一点:

 #create new column called city whose values depend on values in team column
df[' city '] = df[' team ']. map ( lambda x: ' Atlanta ' if ' A ' in x else ' Boston ' if ' B ' in x else '')

#view updated DataFrame                            
print (df)

  team points city
0 A 14 Atlanta
1 to 22 Atlanta
2 to 25 Atlanta
3 to 34 Atlanta
4 B 30 Boston
5 B 12 Boston
6 C 10         
7 C 18       

这种特殊的语法创建了一个名为city的新列,它采用以下值:

  • 亚特兰大如果球队价值等于A。
  • 波士顿如果球队价值等于 B.
  • 如果team中的值等于任何其他值,则为空字符串。

请注意,在本示例中,我们在最后一个else语句后使用了一个空字符串,以便将不满足任何条件的值保留为空。

其他资源

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

Pandas:获取列与值匹配的行的索引
Pandas:如何选择包含特定字符串的列
Pandas:如何检查列是否包含字符串

添加评论

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