Pandas:根据另一列提取列值


您可以使用 pandas 中的query()函数根据另一列中的值提取一列中的值。

该函数使用以下基本语法:

 df. query (" team=='A' ")[" points "]

此特定示例将从列中提取每个值,其中团队列等于 A。

以下示例展示了如何在实践中通过以下 pandas DataFrame 使用此语法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [11, 28, 10, 26, 6, 25, 29, 12]})

#view DataFrame
print (df)

  team position points
0 AG 11
1 AG 28
2 AF10
3AF 26
4 BG 6
5 BG 25
6 BF 29
7 BF 12

示例1:根据满足条件提取列值

以下代码显示如何从列中提取每个值,其中团队列值等于“A”:

 #extract each value in points column where team is equal to 'A'
df. query (" team=='A' ")[" points "]

0 11
1 28
2 10
3 26
Name: points, dtype: int64

该函数返回列中的四个值,其中团队列中的相应值等于“A”。

示例2:根据满足的多个条件之一提取列值

以下代码显示如何从积分列中提取每个值,其中团队列值等于“A”位置列值等于“G”:

 #extract each value in points column where team is 'A' or position is 'G'
df. query (" team=='A' | position=='G' ")[" points "]

0 11
1 28
2 10
3 26
4 6
5 25
Name: points, dtype: int64

该函数返回积分列中的六个值,其中球队列中的相应值等于“A”位置列中的值等于“G”。

示例3:根据满足的多个条件提取列值

以下代码演示如何从积分列中提取每个值,其中团队列值等于“A” 位置列值等于“G”:

 #extract each value in points column where team is 'A' and position is 'G'
df. query (" team=='A' & position=='G' ")[" points "]

0 11
1 28
Name: points, dtype: int64

该函数返回积分列中的两个值,其中球队列中的对应值等于“A” 位置列中的值等于“G”。

其他资源

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

Pandas:如何根据条件选择列
Pandas:根据多个条件删除行
Pandas:根据另一个DataFrame更新列值

添加评论

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