Python - 根据条件找到最大值

标签 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(对于它们每个)。

我该怎么做?

最佳答案

简单地使用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

关于Python - 根据条件找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45125843/

相关文章:

python - 使用 pandas 添加超链接到 excel 工作表,它引用了另一个工作表

Python-计算列表中日期的出现次数

python - 如何 : Redis in production server

python - 使用python中的struct模块打包和解包可变长度数组/字符串

python - 如何在 keras/tensorflow 中定义秩大于 4 的张量上的 2D 卷积

python - getattr 和 unicode 属性

Python 在日期时间接近纪元的 Windows 上崩溃

python - 在 Blob 存储中创建文件夹层次结构时生成意外链接

python - 如何修复 CalledProcessError : in ffmpeg

python - 如何仅使用 itertools 将每个 Python 列表的元素重复 n 次?