2013-10-27 54 views
7

這裏是我的numpy的數組:2D Numpy數組到HTML表格?

num = np.array([[ 0.17899619 0.33093259 0.2076353 0.06130814] 
       [ 0.20392888 0.42653105 0.33325891 0.10473969] 
       [ 0.17038247 0.19081956 0.10119709 0.09032416] 
       [-0.10606583 -0.13680513 -0.13129103 -0.03684349] 
       [ 0.20319428 0.28340985 0.20994867 0.11728491] 
       [ 0.04396872 0.23703525 0.09359683 0.11486036] 
       [ 0.27801304 -0.05769304 -0.06202813 0.04722761]]) 

這裏是我的標題行:

days = ['5 days', '10 days', '20 days', '60 days'] 

這是我的第一列:

prices = ['AAPL', 'ADBE', 'AMD', 'AMZN', 'CRM', 'EXPE', 'FB'] 

我想把這一切在一個這樣的HTML表格:

<table border=1> 
    <tr> 
     <th>Prices</th><th>5 days</th><th>10 days</th><th>20 days</th><th>60 days</th> 
    </tr> 
    <tr> 
     <td>APPL</td><td>0.17899619</td><td>0.33093259</td><td>0.2076353</td><td>0.06130814</td> 
    </tr> 
    <tr> 
     <td>ADBE</td><td>0.20392888</td><td>0.42653105</td><td>0.33325891</td><td>0.10473969</td> 
    </tr> 
    <tr> 
     <td>AMD</td><td>0.17038247</td><td>0.19081956</td><td>0.10119709</td><td>0.09032416</td> 
    </tr> 
    <tr> 
     <td>AMZN</td><td>-0.10606583</td><td>-0.13680513</td><td>-0.13129103</td><td>-0.03684349</td> 
    </tr> 
    <tr> 
     <td>CRM</td><td>0.20319428</td><td>0.28340985</td><td>0.20994867</td><td>0.11728491</td> 
    </tr> 
    <tr> 
     <td>EXPE</td><td>0.04396872</td><td>0.23703525</td><td>0.09359683</td><td>0.11486036</td> 
    </tr> 
    <tr> 
     <td>FB</td><td>0.27801304</td><td>-0.05769304</td><td>-0.06202813</td><td>0.04722761</td> 
    </tr> 
</table> 

有沒有pythonic方法來做到這一點?還是有任何我可以使用的模塊(在Python 3上)?

謝謝。

回答

10

大熊貓據幀有to_html方法:

import numpy as np 
import pandas as pd 

num = np.array([[ 0.17899619, 0.33093259, 0.2076353, 0.06130814,], 
       [ 0.20392888, 0.42653105, 0.33325891, 0.10473969,], 
       [ 0.17038247, 0.19081956, 0.10119709, 0.09032416,], 
       [-0.10606583, -0.13680513, -0.13129103, -0.03684349,], 
       [ 0.20319428, 0.28340985, 0.20994867, 0.11728491,], 
       [ 0.04396872, 0.23703525, 0.09359683, 0.11486036,], 
       [ 0.27801304, -0.05769304, -0.06202813, 0.04722761,],]) 

days = ['5 days', '10 days', '20 days', '60 days'] 

prices = ['AAPL', 'ADBE', 'AMD', 'AMZN', 'CRM', 'EXPE', 'FB'] 

df = pd.DataFrame(num, index=prices, columns=days) 

html = df.to_html() 

print html 

輸出:

<table border="1" class="dataframe"> 
    <thead> 
    <tr style="text-align: right;"> 
     <th></th> 
     <th>5 days</th> 
     <th>10 days</th> 
     <th>20 days</th> 
     <th>60 days</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <th>AAPL</th> 
     <td> 0.178996</td> 
     <td> 0.330933</td> 
     <td> 0.207635</td> 
     <td> 0.061308</td> 
    </tr> 
    <tr> 
     <th>ADBE</th> 
     <td> 0.203929</td> 
     <td> 0.426531</td> 
     <td> 0.333259</td> 
     <td> 0.104740</td> 
    </tr> 
    <tr> 
     <th>AMD</th> 
     <td> 0.170382</td> 
     <td> 0.190820</td> 
     <td> 0.101197</td> 
     <td> 0.090324</td> 
    </tr> 
    <tr> 
     <th>AMZN</th> 
     <td>-0.106066</td> 
     <td>-0.136805</td> 
     <td>-0.131291</td> 
     <td>-0.036843</td> 
    </tr> 
    <tr> 
     <th>CRM</th> 
     <td> 0.203194</td> 
     <td> 0.283410</td> 
     <td> 0.209949</td> 
     <td> 0.117285</td> 
    </tr> 
    <tr> 
     <th>EXPE</th> 
     <td> 0.043969</td> 
     <td> 0.237035</td> 
     <td> 0.093597</td> 
     <td> 0.114860</td> 
    </tr> 
    <tr> 
     <th>FB</th> 
     <td> 0.278013</td> 
     <td>-0.057693</td> 
     <td>-0.062028</td> 
     <td> 0.047228</td> 
    </tr> 
    </tbody> 
</table> 
+0

我使用Python 2.7版,但它也應該在Python 3工作。 –