我有一张包含以下记录的表:
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(对于它们中的每一个)。
我该怎么做?
答案 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