Python - 根据条件查找最大值

时间:2017-07-16 06:44:48

标签: python

我有一张包含以下记录的表:

buyer=[name,value]

任何id都可以在表格中包含多条记录:

Name    Value
E        10
A        2
D        4
E        10
A        5
B        3
B        10
D        10
C        4

我正在尝试根据以下逻辑过滤此表:选择最大值不大于5的那些名称的所有记录。根据上面的示例,我将选择名称A和C的所有记录,因为它们的最大值分别为5和3:

Name    Value
A        2
A        5
C        4

B,D和E将被排除,因为它们的最大值为10(对于它们中的每一个)。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

只需使用pandas模块:

我们假设您的数据位于test.csv文件中。

import pandas as pd

df = pd.read_csv("test.csv", delim_whitespace=True)
idx = df.groupby('Name')['Value'].transform(max) <= 5

print(df[idx])

输出:

  Name  Value
1    A      2
4    A      5
8    C      4

pandas.DataFrame.groupby