use*_*827 4 python multiplication dataframe pandas
我有一个DataFrame(df),包含以下列:
cols = ['A','B','C','D']
Run Code Online (Sandbox Code Playgroud)
如何将这些列中的值相乘以形成一个名为"VAL"的列?
我可以做这个: df['VAL'] = df['A']*df['B']*df['C']*df['D']
但这不会扩大规模; 我想使用cols变量将这些列相乘.
使用列表中的列选择loc,然后跨行使用.prod()(通过指定axis=1).例如:
>>> cols = ['A','B','C','D']
>>> df = pd.DataFrame(np.random.randint(1, 4, size=(3,4)), columns=list('ABCD'))
>>> df
A B C D
0 2 2 1 1
1 2 3 1 1
2 3 1 3 3
>>> df['VAL'] = df.loc[:, cols].prod(axis=1)
>>> df
A B C D VAL
0 2 2 1 1 4
1 2 3 1 1 6
2 3 1 3 3 27
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1332 次 |
| 最近记录: |