【问题标题】:How to return value from "other" row using index column in Pandas如何使用 Pandas 中的索引列从“其他”行返回值
【发布时间】:2020-01-15 09:31:44
【问题描述】:

我的数据框 df 由具有匹配索引列 ['game_id'] 和不同值的行对组成。如果我想创建一个引用同一索引另一行的值的列,我该怎么做?

例如,如果我在['game_id'] 的第一行,并且我想为配对匹配的['FGA'] 值创建一列,我该怎么做?第一行将返回85,而第二行将返回90。在['game_id'] == 21900017 rows 中,第一行将返回78,而第二行将返回109

game_id   Team  PTS FGM Miss FTA TOV Foul ORB DRB  UA  FGA    FG%   A%
21900008  BOS   93  33  57   34  10   29  10   31  15   90   0.367  0.545
21900008  PHI   107 37  48   36  15   34  12   50  13   85   0.435  0.649
21900017  BOS   112 42  67   16  9    21  21   35  21   109  0.385  0.5
21900017  TOR   106 37  41   17  23   28  5    41  15   78   0.474  0.595

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以使用groupby()apply() 并反转分组系列的索引以找到该对的值:

    df['FGA_pair'] = df.groupby('game_id')['FGA'].apply(lambda x: x.iloc[::-1]).reset_index(drop=True)
    

    产量:

        game_id Team  PTS  FGM  Miss  FTA  ...  DRB  UA  FGA    FG%     A%  FGA_pair
    0  21900008  BOS   93   33    57   34  ...   31  15   90  0.367  0.545        85
    1  21900008  PHI  107   37    48   36  ...   50  13   85  0.435  0.649        90
    2  21900017  BOS  112   42    67   16  ...   35  21  109  0.385  0.500        78
    3  21900017  TOR  106   37    41   17  ...   41  15   78  0.474  0.595       109
    

    【讨论】:

    • 太棒了!完全按预期工作。
    猜你喜欢
    • 2016-01-07
    • 2016-09-02
    • 1970-01-01
    • 2021-11-16
    • 2022-11-18
    • 1970-01-01
    • 2014-03-07
    • 2021-11-09
    • 2018-01-13
    相关资源
    最近更新 更多