簡體   English   中英

從 pandas DataFrame 中的過濾值中獲取最大值? - Python, Pandas

[英]Getting the maximum value from filtered values in pandas DataFrames? - Python, Pandas

我想過濾到星期一的日子並獲得星期一的最大 OverallGrade。 或者我為它制作了一個新的數據框,它顯示了預期的答案 90,但是有沒有辦法在不創建新的數據框的情況下做到這一點?

當看到最終結果時,我還需要看到學生 ID,如 alt 解決方案所示,而且我不想使用天數作為索引並為此再次重置索引! (實際上,我將日期作為日期,不想將它們用作索引,為了簡單起見,這里只是轉換為日期名稱)

import pandas as pd

ClassData = {
  "Days":         ["Monday","Wednesday","Monday","Friday","Tuesday","Monday","Friday"],
  "OverallMarks": [   150,     140,       180,      250,      200 ,    240,     170  ],
  "OverallGrade": [    70,      60,        90,      110,       85 ,     80,      71  ],
  "StudentID" :   ['a','b', 'c', 'd', 'e', 'f', 'g']
}

MyDataFrame1 = pd.DataFrame(ClassData)

# Alternate Solution I use - Creating a new Dataframe for only the mondays
NewDataFrame = MyDataFrame1[ MyDataFrame1['Days'] == "Monday" ] # Gets all Mondays
print( NewDataFrame[ NewDataFrame['OverallGrade'] == int(NewDataFrame['OverallGrade'].max()) ][['StudentID','OverallGrade']] ) 
# Gets max grade as 90 and shows the student id and grade

  • “星期一”的第一個 select,就像你一樣
  • 然后根據“OverallGrade”對其進行降序排序
  • Select 第一個元素
print( MyDataFrame1[ MyDataFrame1['Days'] == "Monday" ].sort_values(by='OverallGrade', ascending=False).iloc[0])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM