根据条件重置列

时间:2019-10-01 20:59:03

标签: python pandas

尝试重置击球顺序,以便当inning = 0时,击球顺序从1重新开始,因为我的原始公式未考虑对手相同,所以需要这样做

到目前为止,这是我的公式...

    df['Batting Order'] = df.groupby('opponent'['pa'].cumsum().mod(9).apply(lambda x: 9 if x == 0 else x)      
Input
      pa  Batting Order  inning opponent
2666   1              8      15   Toledo
2667   1              9      16   Toledo
2668   1              1      17   Toledo
2669   0              1      17   Toledo
2670   1              2      17   Toledo
2671   1              3      18   Toledo
2672   1              4      19   Toledo
2673   1              5      19   Toledo
2674   1              6      20   Toledo
2675   1              7       0   Toledo
2676   1              8       1   Toledo
2677   1              9       1   Toledo
2678   0              9       1   Toledo
2679   1              1       1   Toledo
2680   1              2       1   Toledo
2681   0              2       1   Toledo
2682   0              2       1   Toledo
2683   0              2       1   Toledo
2684   1              3       1   Toledo
2685   1              4       2   Toledo
2686   1              5       3   Toledo
2687   1              6       4   Toledo
2688   1              7       5   Toledo
2689   1              8       6   Toledo

这是我想要的输出:

Output
      pa  Batting Order  inning opponent
2666   1              8      15   Toledo
2667   1              9      16   Toledo
2668   1              1      17   Toledo
2669   0              1      17   Toledo
2670   1              2      17   Toledo
2671   1              3      18   Toledo
2672   1              4      19   Toledo
2673   1              5      19   Toledo
2674   1              6      20   Toledo
2675   1              1       0   Toledo
2676   1              2       1   Toledo
2677   1              3       1   Toledo
2678   0              3       1   Toledo
2679   1              4       1   Toledo
2680   1              5       1   Toledo
2681   0              5       1   Toledo
2682   0              5       1   Toledo
2683   0              5       1   Toledo
2684   1              6       1   Toledo
2685   1              7       2   Toledo
2686   1              8       3   Toledo
2687   1              9       4   Toledo
2688   1              1       5   Toledo
2689   1              2       6   Toledo

0 个答案:

没有答案