Pandas中如何在查询中使用列表
在本文中,我们将介绍如何使用Pandas中的列表在DataFrame中进行查询。
阅读更多:Pandas 教程
Pandas数据查询
Pandas是Python的一个库,它提供了强大的数据结构和数据分析工具。其中经常用到的数据结构是DataFrame和Series。
其中,DataFrame是二维数组形式的数据结构,它由多列数据组成。而Series是一个一维数组形式的数据结构,其中只有一个数据列,并且有一个轴标签数组axis labels。
在Pandas中,我们可以通过比较运算符(、>、<)等在DataFrame或Series中进行数据筛选和查询。假如我们有以下数据集合:
import pandas as pd
data = {'Name': ['Peter', 'John', 'Kate', 'Paul', 'Josh'],
'Age': [25, 33, 21, 28, 24],
'Country': ['USA', 'Canada', 'UK', 'USA', 'Australia'],
'Profession': ['Doctor', 'Teacher', 'Engineer', 'Doctor', 'Nurse']}
df = pd.DataFrame(data)
print(df)
打印结果如下:
Name Age Country Profession
0 Peter 25 USA Doctor
1 John 33 Canada Teacher
2 Kate 21 UK Engineer
3 Paul 28 USA Doctor
4 Josh 24 Australia Nurse
我们可以通过以下代码进行查询年龄大于25岁的数据:
query = df[df.Age > 25]
print(query)
打印结果如下:
Name Age Country Profession
1 John 33 Canada Teacher
3 Paul 28 USA Doctor
以上就是使用运算符进行数据查询的方法,但如果要查询多个条件,则需要使用&(和)和|(或)等逻辑运算符进行连接。
下面我们将演示如何使用列表来进行数据筛选和查询,以更加便捷地获取所需数据。
Pandas列表查询
有时候,我们需要查询给定列表中的所有数据,而不需要一个一个地进行比较操作。此时,使用列表可以更加高效地完成查询操作。
以下是如何使用列表来进行数据筛选和查询:
selected_country = ['USA', 'Canada']
# 查询居住在列表中国家的人员信息
query = df[df.Country.isin(selected_country)]
print(query)
打印结果如下:
Name Age Country Profession
0 Peter 25 USA Doctor
1 John 33 Canada Teacher
3 Paul 28 USA Doctor
可以看到,使用isin方法可以查询多个条件,并将其放在一个列表中,更加方便快捷,可以在实际工作中提高效率。
以上代码中,我们使用了isin方法,这个方法会返回一个布尔值的Series,其中True表示在给定列表中,False表示不在列表中。我们将这个Series放入到df中,即可筛选出所有在列表中的数据。
除了isin方法,我们还可以使用query方法进行条件查询,比如:
selected_country = ['USA', 'Canada']
# 查询不居住在列表中国家的人员信息
query = df.query('Country not in @selected_country')
print(query)
打印结果如下:
Name Age Country Profession
2 Kate 21 UK Engineer
4 Josh 24 Australia Nurse
在上面的代码中,我们使用了@符号,以将selected_country列表传递给query方法。
总结
本文介绍了如何使用Pandas中的列表在DataFrame中进行查询。我们演示了如何使用isin方法和query方法进行数据筛选和查询,以及在处理大量数据时,这种方法如何提高工作效率。希望对大家有所帮助。
极客教程