【问题标题】:pandas cumsum skip columnpandas cumsum 跳过专栏
【发布时间】:2018-06-04 20:57:09
【问题描述】:

我是 pandas 的新手,我可以将 cumsum 添加为

df.cumsum(axis=1)

   y0  y1  y2
0   2   3   4
1   2   2   3
2   0   0   0
3   1   2   3
   y0  y1  y2
0   2   5   9
1   2   4   7
2   0   0   0
3   1   3   6

但是有没有办法只在前 2 列上执行,即跳过 y2?

【问题讨论】:

    标签: pandas dataframe cumsum


    【解决方案1】:

    你需要排除y2,找到cumsum并连接y2回来。

    pd.concat([df[['y0', 'y1']].cumsum(axis=1),df['y2']], axis=1)
    

    输出:

        y0  y1  y2
    0   2   5   4
    1   2   4   3
    2   0   0   0
    3   1   3   3
    

    【讨论】:

      【解决方案2】:

      您也可以使用.loc 仅选择您关心的列。

      cols = ['y0', 'y1']
      df.loc[:, cols] = df.loc[:, cols].cumsum(axis=1)
      

      输出

         y0  y1  y2
      0   2   5   4
      1   2   4   3
      2   0   0   0
      3   1   3   3
      

      loc 是一种对 DataFrame 进行切片的灵活方式,通常遵循以下格式:

      .loc[row_labels, column_labels]

      : 可用于指示所有行或 all_columns。

      【讨论】:

      猜你喜欢
      • 2018-11-13
      • 2018-11-17
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 2022-11-19
      • 1970-01-01
      相关资源
      最近更新 更多