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)
我有一个问题,我需要找到与字符串相关的最大值。数据存储在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)