Python 跨数据帧的特定列向量化求和

Python 跨数据帧的特定列向量化求和,python,pandas,sum,vectorization,Python,Pandas,Sum,Vectorization,我想通过使用矢量化优化熊猫数据帧中某些列的总和。 具体而言,我有以下数据框: df = pd.DataFrame(index = [1, 3, 2], data = {'Low':[1, 1, 1], 'Mid':[2, 2, 6], 'High':[3, 3, 3]}) 我已经创建了一个新的列,它包含前N列的总和,其中N是索引值: df['new_col'] = [df.iloc[i,:df.index[i]].sum() for i in range(df.shape[0])] 最后的数

我想通过使用矢量化优化熊猫数据帧中某些列的总和。 具体而言,我有以下数据框:

df = pd.DataFrame(index = [1, 3, 2], data = {'Low':[1, 1, 1], 'Mid':[2, 2, 6], 'High':[3, 3, 3]})
我已经创建了一个新的列,它包含前N列的总和,其中N是索引值:

df['new_col'] = [df.iloc[i,:df.index[i]].sum() for i in range(df.shape[0])]
最后的数据帧如下所示:

    Low  Mid  High  new_col
 1    1    2     3        1
 3    1    2     3        6
 2    1    6     3        7
显然,这必须矢量化。我真的很感激任何能让我避免for循环的提示。
谢谢

尝试广播索引并与列号进行比较:

df['new_col'] = df.where(df.index.values[:,None] > np.arange(df.shape[1]), 0).sum(1)
输出:

   Low  Mid  High  new_col
1    1    2     3        1
3    1    2     3        6
2    1    6     3        7

这是个好主意!谢谢@Quang Hoang。然而,我相信它应该是np.arange(df.shape[1])+1?