繁体   English   中英

根据 Pandas 中的 3 个公共列值加入 3 个单独的 DataFrame

[英]Joining 3 separate DataFrames based off 3 common column values in Pandas

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

我目前将每个 DataFrame 保存到名为 dfs 的列表中的一个变量中。

我试过

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

但这导致我得到了一个排成一行的 DataFrame - Julian Edelman - 唯一在 2019 赛季第 1 周跑动、传球和接球的球员。 我只想说这不是我要找的。

下面复制的是每个 DataFrame 的前五行。

                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

您正在寻找以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 格式,然后合并数据,然后您可以以数据框的形式导入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM