📅  最后修改于: 2023-12-03 15:24:49.629000             🧑  作者: Mango
在 Pandas 中,我们最常用的功能之一就是对数据进行行、列的选择。有时候,我们需要根据某一列的值来选择相应的行。下面就是一些关于如何根据列值选择行的小技巧:
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']
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 函数来实现这一功能。
代码片段示例:
# 创建 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'])]
以上就是几个常用的技巧,如果您还知道其他的方法,欢迎在评论区进行分享。