![](/img/trans.png)
[英]getting string from pandas Series and DataFrames in python?
[英]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
print( MyDataFrame1[ MyDataFrame1['Days'] == "Monday" ].sort_values(by='OverallGrade', ascending=False).iloc[0])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.