浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)

  • Post category:Python

下面是关于“浅谈pandas中Dataframe的查询方法([],loc,iloc,at,iat,ix)”的完整攻略:

1. 什么是Dataframe查询方法

在Pandas中,Dataframe是最常用的数据容器,对于Dataframe的数据查询也是必不可少的操作。Dataframe提供了多种查询方法,包括使用方括号[], loc,iloc,at,iat和ix等。这些查询方法帮助我们从Pandas Dataframe中筛选所需的数据。

2. Dataframe查询方法详解

2.1 使用方括号[]进行查询

使用方括号[]进行查询,我们可以直接通过列名或布尔表达式来查询所需数据。下面是一个基本示例:

import pandas as pd

data = {"name": ["Tom", "Jerry", "Alice"],
        "age": [25, 29, 30],
        "gender": ["M", "M", "F"]}
df = pd.DataFrame(data)

# 使用方括号[]获取"age"列
age = df["age"]
print(age)

# 使用布尔表达式查询 age >= 29 的数据行
df2 = df[df["age"] >= 29]
print(df2)

输出结果:

0    25
1    29
2    30
Name: age, dtype: int64
     name  age gender
1   Jerry   29      M
2   Alice   30      F

2.2 使用loc和iloc进行查询

lociloc这两个方法可以用来查询指定行和列的数据。其中,loc通过行标签和列标签进行选择,iloc通过行号和列号进行选择。下面是一个示例:

import pandas as pd

data = {"name": ["Tom", "Jerry", "Alice"],
        "age": [25, 29, 30],
        "gender": ["M", "M", "F"]}
df = pd.DataFrame(data)

# 使用loc方法获取一行数据
row1 = df.loc[1]
print(row1)

# 使用iloc方法获取第一行数据
row2 = df.iloc[1]
print(row2)

# 获取第2行和第3行的"name"和"age"列数据
df2 = df.loc[1:2, ["name", "age"]]
print(df2)

输出结果:

name      Jerry
age          29
gender        M
Name: 1, dtype: object
name     Jerry
age         29
gender       M
Name: 1, dtype: object
    name  age
1  Jerry   29
2  Alice   30

2.3 使用at和iat进行查询

lociloc类似,atiat也是用于查询单个元素的方法。区别在于,at通过行标签和列标签确定元素位置,而iat通过行号和列号确定元素位置。下面是一个示例:

import pandas as pd

data = {"name": ["Tom", "Jerry", "Alice"],
        "age": [25, 29, 30],
        "gender": ["M", "M", "F"]}
df = pd.DataFrame(data)

# 使用at方法获取第一行"name"列的数据
name1 = df.at[0, "name"]
print(name1)

# 使用iat方法获取第二行"age"列的数据
age2 = df.iat[1, 1]
print(age2)

输出结果:

Tom
29

2.4 使用ix进行查询(已废弃)

ix方法是在lociloc之外的一种查询方式。它结合了lociloc的功能,可以根据行标签或行号进行查询。但是,自pandas版本0.20.0之后,ix方法已经被弃用了。如果希望同时使用行标签和行号进行查询,建议使用ilocloc方法。

3. 总结

以上就是关于“浅谈pandas中Dataframe的查询方法([],loc,iloc,at,iat,ix)”的完整攻略。对于数据处理来说,这些查询方法是非常实用的工具,当然还有更多方法可以尝试,需要根据具体需求进行选择和应用。