2013-04-10 43 views
20

Tôi có một dataframe:Làm thế nào để phân chia giá trị của cột gấu trúc của cột khác

>>> dt 
        COL000 COL001 QT 
STK_ID RPT_Date      
STK000 20120331 2.6151 2.1467 1 
     20120630 4.0589 2.3442 2 
     20120930 4.4547 3.9204 3 
     20121231 4.1360 3.8559 4 
STK001 20120331 -0.2178 0.9184 1 
     20120630 -1.9639 0.7900 2 
     20120930 -2.9147 1.0189 3 
     20121231 -2.5648 2.3743 4 
STK002 20120331 -0.6426 0.9543 1 
     20120630 -0.3575 1.6085 2 
     20120930 -2.3549 0.7174 3 
     20121231 -3.4860 1.6324 4 

Và tôi muốn các giá trị cột chia theo cột 'QT', phần nào như thế này:

dt = dt/dt.QT  # pandas does not accept this syntax 

Sản lượng mong muốn là:

STK_ID RPT_Date  COL000  COL001 QT 
STK000 20120331 2.615110188 2.146655745 1 
     20120630 2.029447265 1.172093561 1 
     20120930 1.484909881 1.306795608 1 
     20121231 1.034008443 0.963970609 1 
STK001 20120331 -0.217808111 0.918355842 1 
     20120630 -0.981974837 0.394977675 1 
     20120930 -0.97157148 0.339633733 1 
     20121231 -0.641203355 0.593569537 1 
STK002 20120331 -0.642567516 0.954323016 1 
     20120630 -0.178759288 0.804230898 1 
     20120930 -0.784982521 0.239117442 1 
     20121231 -0.871501505 0.408094317 1 

Làm như thế nào?

Trả lời

39

Toán tử / cho dv có vẻ bằng div với trục mặc định "cột". Đặt trục thành "chỉ mục", sau đó nó sẽ hoạt động.

df = df.div(df.QT, axis='index') 

Một cách khéo léo là để transpose nó lần đầu tiên, chia, và sau đó trở lại transpose:

df = (df.T/df.QT).T 
+0

cả công trình, cảm ơn. – bigbug

Các vấn đề liên quan