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