pandas:根据另一列中的值(x)将x个列添加到一起

testing数据集:

df = pd.DataFrame({'A':[2,2,2,], 'B':[2,2,2], 'C':[2,2,2], 'Fields':[3,2,1]}) 

我需要根据“字段”列的每一行中的值将“A”,“B”和“C”的值相加。 如果字段数= 3,则返回C.如果字段数为2,则只添加B,C。如果字段数为1,则添加A,B和C.输出I我期待的是:

 df_correct = pd.DataFrame({'A':[2,2,2,], 'B':[2,2,2], 'C':[2,2,2], 'Fields':[3,2,1],'NewColumn':[2,4,6]) 

我想避免如果其他语句,而是通过索引列做些事情。 Excel解决scheme已经工作(每行,假设列是AD):E1 = SUM(OFFSET(A1,0,(D1-1)):C1)

你可以这样做:

 >>> df.apply(lambda r: r[r['Fields']-1:3].sum(), axis=1) 0 2 1 4 2 6 dtype: int64