- # ----------Du lieu
- import pandas as pd
- STT=[]
- listTen=[]
- listToan=[]
- listLy=[]
- listHoa=[]
- #----------Ham
- def nhapLieu(n):
- for x in range (1,n+1):
- STT.append('sv'+str(x))
- listTen.append(input('Moi Nhap Ten :'))
- listToan.append(int(input('Moi Nhap Diem Toan :')))
- listLy.append(int(input('Moi Nhap Diem Ly :')))
- listHoa.append(int(input('Moi Nhap Diem Hoa :')))
- def trungbinhTLH(df):
- diemTB=(df['Toan']+df['Ly']+df['Hoa'])/3
- return diemTB
- def maxTLH(df):
- maxToan=max(df['Toan'])
- maxLy=max(df['Ly'])
- maxHoa=max(df['Hoa'])
- return [maxToan,maxLy,maxHoa]
- def minTLH(df):
- minToan=min(df['Toan'])
- minLy=min(df['Ly'])
- minHoa=min(df['Hoa'])
- return [minToan,minLy,minHoa]
- def lonNhiTLH(df):
- tempToan=list(df['Toan'])
- tempLy=list(df['Ly'])
- tempHoa=list(df['Hoa'])
- tempToan.sort()
- tempLy.sort()
- tempHoa.sort()
- return[tempToan[-2],tempLy[-2],tempHoa[-2]]
- def lonBaTLH(df):
- tempToan=list(df['Toan'])
- tempLy=list(df['Ly'])
- tempHoa=list(df['Hoa'])
- tempToan.sort()
- tempLy.sort()
- tempHoa.sort()
- return[tempToan[-3],tempLy[-3],tempHoa[-3]]
- #----------Main
- print("Nhap lieu Sinh vien")
- n=int(input("Nhap So Luong Sinh vien"))
- nhapLieu(n)
- tempDict={'STT':STT,'Ten':listTen,'Toan':listToan,'Ly':listLy,'Hoa':listHoa}
- df= pd.DataFrame(tempDict)
- df
- #-----------Diem Trung Binh TLH
- diemTB=trungbinhTLH(df)
- df['DiemTB']=diemTB
- print(df)
- #----------Max Toan Ly Hoa
- lonNhatTLH=maxTLH(df)
- tempMaxDict={'STT':'Max','Toan':lonNhatTLH[0],'Ly':lonNhatTLH[1],'Hoa':lonNhatTLH[2]}
- maxDF= pd.DataFrame(tempMaxDict,index=[n])
- df1=pd.concat([df,maxDF])
- df1
- #---------Min Toan Ly Hoa
- nhoNhatTLH=minTLH(df)
- tempMinDict={'STT':'Min','Toan':nhoNhatTLH[0],'Ly':nhoNhatTLH[1],'Hoa':nhoNhatTLH[2]}
- minDF= pd.DataFrame(tempMinDict,index=[n+1])
- df2=pd.concat([df1,minDF])
- df2
- #---------Lon nhi
- nhoNhi=lonNhiTLH(df)
- nhoNhiDict={'STT':'Lon Nhi','Toan':nhoNhi[0],'Ly':nhoNhi[1],'Hoa':nhoNhi[2]}
- nhoNhiDF= pd.DataFrame(nhoNhiDict,index=[n+2])
- df3=pd.concat([df2,nhoNhiDF])
- df3
- #---------Lon ba
- nhoBa=lonBaTLH(df)
- nhoBaDict={'STT':'Lon Ba','Toan':nhoBa[0],'Ly':nhoBa[1],'Hoa':nhoBa[2]}
- nhoBaDF= pd.DataFrame(nhoBaDict,index=[n+3])
- df4=pd.concat([df3,nhoBaDF])
- df4
- #---------Xoa NaN va Set up STT lam Index
- df4=df4.fillna(' ')
- df4=df4.set_index('STT')
- df4