>source

i 데이터 프레임이 아래에 있습니다

df= pd.DataFrame()
df['SubjectArea']= ["a","b","a","c","a","s","d","b","s","a","s","c","s","z","a"]
df['Articles']= [10, 20,5,58,98,15,35,89,47,15,25,145,89,689,25]
df['NoOfReading']= [30, 40,45,25,35,88,68,98,45,125,255,np.nan,75,125,265]
df
    SubjectArea Articles    NoOfReading
0       a         10            30.0
1       b         20            40.0
2       a         5             45.0
3       c         58            25.0
4       a         98            35.0
5       s         15            88.0
6       d         35            68.0
7       b         89            98.0
8       s         47            45.0
9       a         15            125.0
10      s         25            255.0
11      c         145           NaN
12      s         89            75.0
13      z         689           125.0
14      a         25            265.0

각 주제 영역에 대해 아래의 데이터 프레임을 만들고 가중 평균을 기반으로 제공 할 순위가 있습니다.

df.fillna(0, inplace=True)
df["weightedAverage"]= df["Articles"]*0.35 + df["NoOfReading"]*0.65
df2= df[df["SubjectArea"]=="a"]
##df2["weightedAverage"]= df2["Articles"]*0.35 + df2["NoOfReading"]*0.65
df2= df2.sort_values(by="weightedAverage",ascending=[False])
df2['Rank']= df2['weightedAverage'].rank(method='dense', ascending=False)
df2.index= range(len(df2))
df2
    SubjectArea Articles    NoOfReading weightedAverage Rank
0       a       25          265.0           181.00      1.0
1       a       15          125.0           86.50       2.0
2       a       98          35.0            57.05       3.0
3       a       5           45.0            31.00       4.0
4       a       10          30.0            23.00       5.0

그래서, 나는 순위와 가중 평균을 통해 모든 "주관장"에 대해 하나의 데이터 프레임 컨텐츠를 생성하고 싶었습니다.

SubjectArea Articles    NoOfReading weightedAverage Rank
0       a       25          265.0           181.00      1.0
1       a       15          125.0           86.50       2.0
2       a       98          35.0            57.05       3.0
3       a       5           45.0            31.00       4.0
4       a       10          30.0            23.00       5.0
  SubjectArea  Articles    NoOfReading weightedAverage Rank
0       b       89          98.0            94.85       1.0
1       b       20          40.0            33.00       2.0
.
.
.
.
.

순위가있는 팬더 피벗 테이블을 사용하여 유사한 것을 만들 수 있습니까? 또는 다른 방법은 무엇입니까?

어떤 도움도 감사 할 것입니다. 미리 감사드립니다. !!

  • 이전 razor : .NET 5 Blazor Server App 속성은 면도기에서 null이지만 WebApi 호출 후 데이터가 있습니다.
  • 다음 angular : config.json에서 각도 읽기 및 초기화 httpclient를 너무 오래 걸립니다.