接下来我将详细讲解一下 pandas 中 DataFrame 的查询方法,包括 []、loc、iloc、at、iat、ix 这几种方法。
DataFrame 查询方法
DataFrame 的基本查询方法——[]
DataFrame 的基本查询方法是使用中括号 [] 进行索引,这种方法是最为简单的方法。
示例 1:
import pandas as pd
data = {'name': ['Amy', 'Bob', 'Carson', 'David'],
'age': [20, 21, 22, 23],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data)
# 查询 name 列
print(df['name'])
输出结果:
0 Amy
1 Bob
2 Carson
3 David
Name: name, dtype: object
示例 2:
import pandas as pd
data = {'name': ['Amy', 'Bob', 'Carson', 'David'],
'age': [20, 21, 22, 23],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data)
# 查询 name 和 age 列
print(df[['name', 'age']])
输出结果:
name age
0 Amy 20
1 Bob 21
2 Carson 22
3 David 23
loc
loc 是根据 DataFrame 的行列标签进行查询的方法,可通过行列标签直接定位到具体的数据。
示例 1:
import pandas as pd
data = {'name': ['Amy', 'Bob', 'Carson', 'David'],
'age': [20, 21, 22, 23],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data, index=['a', 'b', 'c', 'd'])
# 查询行标签为 b、d,列标签为 name、age 的数据
print(df.loc[['b', 'd'], ['name', 'age']])
输出结果:
name age
b Bob 21
d David 23
示例 2:
import pandas as pd
data = {'name': ['Amy', 'Bob', 'Carson', 'David'],
'age': [20, 21, 22, 23],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data, index=['a', 'b', 'c', 'd'])
# 查询行标签为 b 的行的所有数据
print(df.loc['b'])
输出结果:
name Bob
age 21
gender male
Name: b, dtype: object
iloc
iloc 是根据 DataFrame 的行列位置进行查询的方法,它与 loc 不同,它用的是行列位置。
示例 1:
import pandas as pd
data = {'name': ['Amy', 'Bob', 'Carson', 'David'],
'age': [20, 21, 22, 23],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data)
# 查询第二行第一列的数据
print(df.iloc[1, 0])
输出结果:
Bob
示例 2:
import pandas as pd
data = {'name': ['Amy', 'Bob', 'Carson', 'David'],
'age': [20, 21, 22, 23],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data)
# 查询前两行,所有列的数据
print(df.iloc[:2, :])
输出结果:
name age gender
0 Amy 20 female
1 Bob 21 male
at 和 iat
at 和 iat 是用于查询单个元素的方法,它们与 loc 和 iloc 类似,只不过 at 和 iat 只能查询单个元素,速度比 loc 和 iloc 快。
示例 1:
import pandas as pd
data = {'name': ['Amy', 'Bob', 'Carson', 'David'],
'age': [20, 21, 22, 23],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data)
# 查询第二行第一列的数据
print(df.iat[1, 0])
输出结果:
Bob
示例 2:
import pandas as pd
data = {'name': ['Amy', 'Bob', 'Carson', 'David'],
'age': [20, 21, 22, 23],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data)
# 查询第二行第一列的数据
print(df.at[1, 'name'])
输出结果:
Bob
ix(已废弃)
ix 通过标签值或者位置来查询表格。但是,它已经被废弃,不推荐使用。
总结
至此,pandas 中 DataFrame 的查询方法已经全部介绍完毕,分别包括 []、loc、iloc、at、iat、ix 几种方法。我们可以根据实际需求来选择不同的查询方法,从而有效地提高查询效率,加快数据处理速度。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix) - Python技术站