📌  相关文章
📜  如何根据列值 pandas 选择行 (1)

📅  最后修改于: 2023-12-03 15:24:49.629000             🧑  作者: Mango

如何根据列值 pandas 选择行

在 Pandas 中,我们最常用的功能之一就是对数据进行行、列的选择。有时候,我们需要根据某一列的值来选择相应的行。下面就是一些关于如何根据列值选择行的小技巧:

使用 loc 或 iloc

Pandas 中有两个基本的索引器 loc 和 iloc,其中 loc 用来基于标签选择行,iloc 则用来基于位置选择行。我们可以使用 loc 或 iloc 来根据列值选择行。

代码片段示例:

# 创建 DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
    'gender': ['female', 'male', 'male', 'male', 'female'],
    'age': [25, 19, 37, 52, 33]
})

# 根据 gender 为 male 的行
df_male = df.loc[df['gender'] == 'male']
使用 query

Pandas 中还有一个十分方便的函数 query,可以更加简单地实现根据列值选择行。同时,query 也支持使用 Python 的布尔字符串(True 或 False)等直接判断。

代码片段示例:

# 创建 DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
    'gender': ['female', 'male', 'male', 'male', 'female'],
    'age': [25, 19, 37, 52, 33]
})

# 根据 gender 为 male 的行
df_male = df.query('gender == "male"')
使用 isin

有时候,我们需要根据多个列值来选择行。可以使用 isin 函数来实现这一功能。

代码片段示例:

# 创建 DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
    'gender': ['female', 'male', 'male', 'male', 'female'],
    'age': [25, 19, 37, 52, 33]
})

# 根据 name 是 Alice 或 Emily 的行
df_ae = df.loc[df['name'].isin(['Alice', 'Emily'])]

以上就是几个常用的技巧,如果您还知道其他的方法,欢迎在评论区进行分享。