基于Pandas中的3个公共列值连接3个独立的数据帧

2024-05-13 20:22:40 发布

您现在位置:Python中文网/ 问答频道 /正文

使用包含2019赛季第1周所有进攻球员统计数据的熊猫队NFL数据集。我目前有三个数据帧,一个用于传递统计数据,一个用于快速统计数据,另一个用于接收统计数据。我想将所有三个数据帧合并成一个最终的数据帧。问题是一些播放器出现在一个或多个数据帧中。例如,一个QB可以跑动和传球,因此一些QB同时出现在传球DF和冲刺DF中。“Player”是我想要组合它们的常用索引,但每个重复的行也有相同的“Pos”和“Tm”值。所以我想在“Player”、“Tm”和“Pos”列上组合这三个数据帧

目前,我已将每个数据帧保存到名为dfs的列表中的一个变量中

我试过了

df = dfs[0].join(dfs[1:])

但这给了我一个一排的数据框——朱利安·埃德尔曼——2019赛季第一周唯一跑动、传球和接球的球员。我只想说这不是我想要的

下面复制的是每个数据帧的前五行

                Pos   Tm PassingYds PassingTD Int PassingAtt Cmp
Player
Lamar Jackson    QB  BAL        324         5   0         20  17
Dak Prescott     QB  DAL        405         4   0         32  25
Robert Griffin   QB  BAL         55         1   0          6   6
Patrick Mahomes  QB  KAN        378         3   0         33  25
Kirk Cousins     QB  MIN         98         1   0         10   8

--------------------------------------------------------------------------
               Pos   Tm Rec Tgt ReceivingYds ReceivingTD
Player
Sammy Watkins   WR  KAN   9  11          198           3
Michael Gallup  WR  DAL   7   7          158           0
John Ross       WR  CIN   7  12          158           2
DeSean Jackson  WR  PHI   8   9          154           2
Marquise Brown  WR  BAL   4   5          147           2
---------------------------------------------------------------------------
                    Pos   Tm RushingAtt RushingYds RushingTD
Player
Marlon Mack          RB  IND         25        174         1
Christian McCaffrey  RB  CAR         19        128         2
Saquon Barkley       RB  NYG         11        120         0
Dalvin Cook          RB  MIN         21        111         2
Mark Ingram          RB  BAL         14        107         2


Tags: 数据posdfwr统计数据tmplayerdal
2条回答

您正在寻找以PlayerPosTm作为索引的外部联接。首先,将它们附加到索引中,然后使用连接类型outer调用当前尝试


dfs = [d.set_index(['Pos', 'Tm'], append=True) for d in dfs]
dfs[0].join(dfs[1:], how='outer')

                             PassingYds  PassingTD  Int  PassingAtt   Cmp  Rec   Tgt  ReceivingYds  ReceivingTD  RushingAtt  RushingYds  RushingTD
Player              Pos Tm
Christian McCaffrey RB  CAR         NaN        NaN  NaN         NaN   NaN  NaN   NaN           NaN          NaN        19.0       128.0        2.0
Dak Prescott        QB  DAL       405.0        4.0  0.0        32.0  25.0  NaN   NaN           NaN          NaN         NaN         NaN        NaN
Dalvin Cook         RB  MIN         NaN        NaN  NaN         NaN   NaN  NaN   NaN           NaN          NaN        21.0       111.0        2.0
DeSean Jackson      WR  PHI         NaN        NaN  NaN         NaN   NaN  8.0   9.0         154.0          2.0         NaN         NaN        NaN
John Ross           WR  CIN         NaN        NaN  NaN         NaN   NaN  7.0  12.0         158.0          2.0         NaN         NaN        NaN
Kirk Cousins        QB  MIN        98.0        1.0  0.0        10.0   8.0  NaN   NaN           NaN          NaN         NaN         NaN        NaN
Lamar Jackson       QB  BAL       324.0        5.0  0.0        20.0  17.0  NaN   NaN           NaN          NaN         NaN         NaN        NaN
Mark Ingram         RB  BAL         NaN        NaN  NaN         NaN   NaN  NaN   NaN           NaN          NaN        14.0       107.0        2.0
Marlon Mack         RB  IND         NaN        NaN  NaN         NaN   NaN  NaN   NaN           NaN          NaN        25.0       174.0        1.0
Marquise Brown      WR  BAL         NaN        NaN  NaN         NaN   NaN  4.0   5.0         147.0          2.0         NaN         NaN        NaN
Michael Gallup      WR  DAL         NaN        NaN  NaN         NaN   NaN  7.0   7.0         158.0          0.0         NaN         NaN        NaN
Patrick Mahomes     QB  KAN       378.0        3.0  0.0        33.0  25.0  NaN   NaN           NaN          NaN         NaN         NaN        NaN
Robert Griffin      QB  BAL        55.0        1.0  0.0         6.0   6.0  NaN   NaN           NaN          NaN         NaN         NaN        NaN
Sammy Watkins       WR  KAN         NaN        NaN  NaN         NaN   NaN  9.0  11.0         198.0          3.0         NaN         NaN        NaN
Saquon Barkley      RB  NYG         NaN        NaN  NaN         NaN   NaN  NaN   NaN           NaN          NaN        11.0       120.0        0.0

最好将以下数据转换为.CSV格式,然后合并数据,然后可以以dataframe的形式导入

相关问题 更多 >