Pandas基于数据帧中的多个列值选择行

Pandas基于数据帧中的多个列值选择行

在本文中,我们将介绍如何使用Pandas在数据帧中选择行。特别地,我们将关注如何选择基于多个列的特定条件的行。我们将讨论以下主题:

  • 如何基于单个列值选择行
  • 如何结合多个条件选择行
  • 如何结合多个列值和多个条件选择行

我们首先需要导入Pandas库和创建一个数据帧来进行操作。

import pandas as pd 

# 创建数据帧
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
    'Age': [25, 32, 47, 32, 25],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Boston', 'New York'],
    'Weight': [55, 67, 73, 82, 68],
    'Gender': ['Female', 'Male', 'Male', 'Male', 'Female']
})

接下来,我们将使用这个数据集来进行不同的选择。

阅读更多:Pandas 教程

如何基于单个列值选择行

我们可以使用“”运算符来选择数据框中一个特定列中的值。例如,我们将选择City列中值为New York的所有行。

# 选择City列中值为“New York”的所有行
city_filter = df['City'] == 'New York'
ny_df = df[city_filter]
print(ny_df)

输出结果为:

    Name  Age       City  Weight  Gender
0  Alice   25   New York      55  Female
4   Ella   25   New York      68  Female

如何结合多个条件选择行

我们可以使用“&”和“|”运算符将多个条件结合起来。

例如,我们将选择City列值为New York和Gender列值为Female的所有行。

# 选择City列值为“New York”并且Gender列值为“Female”的所有行
ny_female_filter = (df['City'] == 'New York') & (df['Gender'] == 'Female')
ny_female_df = df[ny_female_filter]
print(ny_female_df)

输出结果为:

    Name  Age      City  Weight  Gender
0  Alice   25  New York      55  Female
4   Ella   25  New York      68  Female

类似地,我们可以选择City列值为New York或Gender列值为Female的所有行。

# 选择City列值为“New York”或Gender列值为“Female”的所有行
ny_or_female_filter = (df['City'] == 'New York') | (df['Gender'] == 'Female')
ny_or_female_df = df[ny_or_female_filter]
print(ny_or_female_df)

输出结果为:

     Name  Age          City  Weight  Gender
0   Alice   25      New York      55  Female
1     Bob   32   Los Angeles      67    Male
2  Charlie   47       Chicago      73    Male
3    David   32        Boston      82    Male
4    Ella   25      New York      68  Female

如何结合多个列值和多个条件选择行

我们可以使用DataFrame.isin()方法来选择多个列的多个条件下的行。例如,我们将选择City列的New York值和Gender列的Female和Male值的所有行。

# 选择City列的“New York”值和Gender列的“Female”和“Male”值的所有行
value_list = ['New York', 'Female', 'Male']
value_filter = df.isin(value_list).any(1)
multiple_filter_df = df[value_filter]
print(multiple_filter_df)

输出结果为:

     Name   Age      City  Weight  Gender
0   Alice  25.0  New York    55.0  Female
1     Bob  32.0       NaN    67.0    Male
2  Charlie  47.0       NaN    73.0    Male
3    David  32.0       NaN    82.0    Male
4    Ella  25.0  New York    68.0  Female

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程