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 中执行其他常见任务: