📌  相关文章
📜  删除具有某些值的行 pandas - Python (1)

📅  最后修改于: 2023-12-03 14:50:18.412000             🧑  作者: Mango

删除具有某些值的行 Pandas - Python

在 Pandas 中,我们可以使用 drop 方法删除具有特定值的行。

下面是一个示例代码片段:

import pandas as pd

# 创建示例数据
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
        'age': [25, 30, 35, 40, 45],
        'city': ['Atlanta', 'Boston', 'Chicago', 'Denver', 'Atlanta']}
df = pd.DataFrame(data)

# 输出原始数据框
print("原始数据:\n", df)

# 删除城市为 Atlanta 的行
df = df.drop(df[df.city == "Atlanta"].index)

# 输出删除后的数据框
print("\n删除城市为 Atlanta 的行后的数据:\n", df)

输出结果:

原始数据:
       name  age     city
0    Alice   25  Atlanta
1      Bob   30   Boston
2  Charlie   35  Chicago
3    David   40   Denver
4    Emily   45  Atlanta

删除城市为 Atlanta 的行后的数据:
       name  age     city
1      Bob   30   Boston
2  Charlie   35  Chicago
3    David   40   Denver

在上面的代码中,我们首先创建一个示例数据框 df。然后使用 drop 方法删除了城市为 Atlanta 的行。具体实现是使用布尔索引定位到这些行,然后使用 index 属性指定要删除的行。drop 方法返回一个新数据框,并将其分配回 df 变量。

除此之外,我们也可以使用 .loc[] 方法来删除具有特定值的行。下面是一个代码片段示例:

import pandas as pd

# 创建示例数据
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
        'age': [25, 30, 35, 40, 45],
        'city': ['Atlanta', 'Boston', 'Chicago', 'Denver', 'Atlanta']}
df = pd.DataFrame(data)

# 输出原始数据框
print("原始数据:\n", df)

# 使用 .loc[] 方法删除城市为 Atlanta 的行
df = df.loc[df.city != "Atlanta"]

# 输出删除后的数据框
print("\n删除城市为 Atlanta 的行后的数据:\n", df)

输出结果:

原始数据:
       name  age     city
0    Alice   25  Atlanta
1      Bob   30   Boston
2  Charlie   35  Chicago
3    David   40   Denver
4    Emily   45  Atlanta

删除城市为 Atlanta 的行后的数据:
       name  age     city
1      Bob   30   Boston
2  Charlie   35  Chicago
3    David   40   Denver

在上面的代码中,我们使用了 .loc[] 方法通过布尔索引删除了城市为 Atlanta 的行。值得注意的是,我们在布尔索引中使用了 != 运算符来选择城市不为 Atlanta 的行。与使用 drop 方法删除行相比,使用 .loc[] 方法更加直观。