Tyl*_*rNG 2 python product sum pandas
我有一个df:
Value1 Value2 1 2 3
1 A 0 1 2
2 B 3 4 5
3 C 2 2 2
Run Code Online (Sandbox Code Playgroud)
我想在行和列之间执行sumproduct 1 2 3:
Value1 Value2 1 2 3 sumproduct
1 A 0 1 2 8 = 0*1 + 1*2 + 2*3
2 B 3 4 5 26 = 3*1 + 4*2 + 5*3
3 C 2 2 2 12 = 2*1 + 2*2 + 2*3
Run Code Online (Sandbox Code Playgroud)
我试过(df.values*df.columns.values).sum(1),但后来我需要删除Value1和Value2第一列。有没有更好的方法?
非常感谢!
df = pd.DataFrame({'1': [0, 3, 2], '2': [1, 4, 2], '3': [2, 5, 2]})
df['sumproduct'] = df[1] * 1 + df[2] * 2 + df[3] * 3
Run Code Online (Sandbox Code Playgroud)
一般情况更新
valid_columns = [col for col in df.columns if col.isdigit()]
df['sumproduct'] = (df[valid_columns] * [int(x) for x in valid_columns]).sum(axis=1)
Run Code Online (Sandbox Code Playgroud)
我将要做的
df.iloc[:,2:].dot([1,2,3])
Out[239]:
0 8
1 26
2 12
dtype: int64
Run Code Online (Sandbox Code Playgroud)
使其自动
s=df.iloc[:,2:]
s.dot(s.columns.astype(int))
Out[242]:
0 8
1 26
2 12
dtype: int64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6847 次 |
| 最近记录: |