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 中的重复列