【发布时间】:2020-04-25 13:16:25
【问题描述】:
我想选择满足以下条件的数据框子集:我有一个数据框,它显示了三个学生的不同测试结果。一旦其中一名学生得到“差”的结果,他们就不能被考虑参加实验,需要从数据集中删除。我的数据框如下所示:
import pandas as pd
data = {'Name': ['Peter', 'Peter','Anna', 'Anna','Anna', 'Max'],
'Result': ["Good", "Good", "Good", "Good", "poor", "Very Good"],
}
df = pd.DataFrame (data, columns = ['Name','Points'])
这意味着我首先需要查看谁做得不好,然后删除包含该 Person 的每一行。在这个例子中我想要的结果是:
df_res = pd.DataFrame({'Name': ('Peter', 'Peter', 'Max', 'Max'),
'Result': ("Good", "Good", "Very Good")})
有人可以帮我吗?特别是删除其中所有具有相应名称的行对我来说是一个障碍。
【问题讨论】:
-
使用
min('Points')和groupBy('Name')获取每个学生的最低分数,然后返回最低分数为< 20的分数。最后,使用它来过滤原始数据框。 -
非常感谢您的回答,我应该更准确。我稍微更改了示例,因此 min 函数不起作用。
-
请参阅stackoverflow.com/questions/35445132/…,了解如何查找包含特定值的组。
-
您不需要
columns参数来构建数据框。它还会干扰构建数据框。
标签: python pandas dataframe multiple-columns drop