Python:如何从 table 中 return 与字符串相关的最大值

Python: How to return maximum value related to a string from a table

我有一个问题,我需要找到与字符串相关的最大值。数据存储在excel中。 我知道我需要使用 openpyxl 并且可能 pandas。示例如下:

Name Value
x 10
x 5
x 1
y 40
y 11
y 101
z 30
z 31

我正在寻找以下输出:

Name Value
x 10
y 101
z 31

这是我的代码的开头:

import openpyxl
wb = openpyxl.load_workbook("Book1.xlsx")
sh1=wb['Sheet1']

import pandas as pd
excel_file= pd.ExcelFile(r"C:\Users\PycharmProjects\pythonProject\Book1.xlsx")
def = excel_file.parse(excel_file.sheet_nams[0])

如有任何帮助,我们将不胜感激! :)

试试

out = df.groupby('Name').max().reset_index()

或者

out = df.sort_values('Value').drop_duplicates('Name',keep='last').sort_index()
  Name  Value
0    x     10
5    y    101
7    z     31

Pandas 可以本机完成所有这些。添加@BENY的答案,我们可以轻松做到。

import pandas as pd
grp = pd.read_excel("C:\Users\PycharmProjects\pythonProject\Book1.xlsx").groupby('Name').max().reset_index()

for i in grp:
    print(i)