Pandas:如何删除除某些行之外的所有行


您可以使用以下方法从 pandas DataFrame 中删除除某些行之外的所有行:

方法 1:删除除列中具有特定值的行之外的所有行

 #drop all rows except where team column is equal to 'Mavs'
df = df. query (" team == 'Mavs' ")

方法2:删除除列中包含几个特定值之一的行之外的所有行

 #drop all rows except where team is equal to 'Mavs' or 'Heat'
df = df. query (" team == 'Mavs' | team == 'Heat' ")

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Heat', 'Heat', 'Cavs', 'Cavs'],
                   ' points ': [18, 22, 19, 14, 14, 11],
                   ' assists ': [5, 7, 7, 9, 12, 9]})

#view DataFrame
print (df)

   team points assists
0 Mavs 18 5
1 Mavs 22 7
2 Heat 19 7
3 Heat 14 9
4 Cavs 14 12
5 Cavs 11 9

示例 1:删除除列中具有特定值的行之外的所有行

我们可以使用以下语法删除除team列中值为“Mavs”的行之外的所有行:

 #drop all rows except where team column is equal to 'Mavs'
df = df. query (" team == 'Mavs' ")

#view updated DataFrame
print (df)

   team points assists
0 Mavs 18 5
1 Mavs 22 7

请注意,除了团队列中具有值“Mavs”的行之外,每一行都已被删除。

示例2:删除除列中包含几个特定值之一之外的所有行

我们可以使用以下语法删除除球队列中值为“Mavs”或“Heat”的行之外的所有行:

 #drop all rows except where team column is equal to 'Mavs'
df = df. query (" team == 'Mavs' | team == 'Heat' ")

#view updated DataFrame
print (df)

   team points assists
0 Mavs 18 5
1 Mavs 22 7
2 Heat 19 7
3 Heat 14 9

请注意,除了Team列中值为“Mavs”或“Heat”的行之外,所有行均已被删除。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

如何删除 Pandas DataFrame 中的第一行
如何删除 Pandas DataFrame 中的第一列
如何删除 Pandas 中的重复列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注