2016-06-29 39 views
7

我試圖將一個熊貓數據框的每一行乘以不同的值,並想知道做到這一點的最佳方式是什麼。如何將熊貓數據框中的每一行乘以不同的值

例如,如果我有以下數據幀:

import numpy as np 
import pandas as pd 
df = pd.DataFrame(np.random.randn(2, 3)) 
df 
    0   1   2 
0 -1.283316 0.849488 1.936060 
1 -2.078575 -0.871570 -0.970261 

我想通過在列表或陣列

vals = [1, 100] 

不同乘以每一行中的每個元素在這個例子中我希望每個第一行中的項目乘以1,第二行中的每個項目乘以100

結果應該是:

 0   1   2 
0 -1.283316 0.849488 1.936060 
1 -207.8575 -87.1570 -97.0261 

我曾嘗試:

df * vals 
df.multiply(vals) 
df.multiply(vals, axis=1) 

其工作的無,但我沒想到他們太多,根據我的代碼應該做些什麼瞭解。我無法找出一個簡潔的方式來做到這一點與熊貓,任何幫助表示讚賞,謝謝。

回答

8

的方法是mul

df.mul([1, 100], axis=0) 
Out[17]: 
      0   1   2 
0 -1.198766 -1.340028 1.990843 
1 113.890468 -68.177755 -9.060228 
+0

哇哦,我簡直不敢相信我沒碰到過,在我所有的搜索前來。謝謝 – johnchase

+0

不客氣。 :) – ayhan

相關問題