我有一个数据帧(a),我想从中减去一个列表(b),按列:
import numpy as np
import pandas as pd
In:a=pd.DataFrame(np.arange(0,20).reshape(5,4))
print(a)
Out: 0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19
In: b=[1,2,3,4,5]
我希望这次行动能奏效:
^{pr2}$但是我得到一个错误。在
下面的操作做了我想要的,但是不优雅。正确的方法是什么?在
In: c=(a.T-b).T
print(a)
Out: 0 1 2 3
0 -1 0 1 2
1 2 3 4 5
2 5 6 7 8
3 8 9 10 11
4 11 12 13 14
我认为这可能更容易阅读和理解:
或者这个:
^{pr2}$矩阵操作最慢,buildin
.sub()
@DSM和数组广播方法同样快:如果您想知道,
lambda
版本是最慢的,就像python
中的情况一样:我建议使用
sub
:可以使用
apply
并使用lambda按列减去列表值:相关问题 更多 >
编程相关推荐