执行自连接&;熊猫数据帧上的聚合&;Spark Scala,Python数据帧

执行自连接&;熊猫数据帧上的聚合&;Spark Scala,Python数据帧,python,pandas,scala,apache-spark,pyspark,Python,Pandas,Scala,Apache Spark,Pyspark,连接两个数据帧 团队、队长、比赛ID A, Jack, 13 A, Jack, 14 A, Sam, 15 B, Nancy, 13 B, Rob, 14 B, Job, 15 团队、团队、比赛ID、比赛日期、获胜团队 A B 13 12011018 A A B 15 13011018 B 输出数据帧必须具

连接两个数据帧

团队、队长、比赛ID

A,      Jack,   13 
A,      Jack,   14
A,      Sam,    15 
B,      Nancy,  13
B,      Rob,    14
B,      Job,    15
团队、团队、比赛ID、比赛日期、获胜团队

A           B       13      12011018    A
A           B       15      13011018    B
输出数据帧必须具有, 团队、团队、比赛ID、比赛日期、获胜团队,

以及6附加字段,WinRationalofTeam\u LWinRationalofTeam\u R团队对团队的胜利捕获的胜利捕获的胜利队长对团队的胜利

比方说

  • WinRationOfTeam_LL队与任意一队打了15场比赛,赢了10场,那么A队的胜率是10/15

    • WinRationOfCaptain\u LL队和“杰克?”由于队长与任何球队打了4场比赛,赢了1场,那么球队的胜率是1/4=0.25

    • WinRationOfTeam\u L\u VS\u RA队与R队打了5场比赛,赢了3场,然后A队的胜率为3/4=0.75

    • WinRatio_Captain_L_ON_RA队与队长杰克和队长罗布一起与B队比赛3场,赢了2场,然后WinRatio_Captain_ON_R=2/3=0.66

从长远来看,国家足球队在100场比赛中赢了85场, 这一比率为0.85 丹担任A队队长,打了20场比赛,20场比赛中赢了10场。 船长的温升为10/20,即0.5

A队和B队打了10场比赛,A队赢了6场,现在如果A队在Team_L列下的输出数据框中,那么WinRationOfTeam_L_VS_R是6/10=0.6

丹担任A队队长,吉姆担任B队队长,丹和吉姆共打了4场比赛,赢了3场。 然后 上尉与上尉之比为3/4=0.75