我有一个包含记录的表,如下所示:
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(对于它们每个)。
我该怎么做?
最佳答案
简单地使用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
<小时/>
关于Python - 根据条件找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45125843/