Way*_*ner 60 python jupyter-notebook
我知道我以前在某个地方见过一些例子,但对于我的生活,我在google搜索时找不到它.
我有一些数据行:
data = [[1,2,3],
[4,5,6],
[7,8,9],
]
Run Code Online (Sandbox Code Playgroud)
我想在表格中输出这些数据,例如
+---+---+---+
| 1 | 2 | 3 |
+---+---+---+
| 4 | 5 | 6 |
+---+---+---+
| 7 | 8 | 9 |
+---+---+---+
Run Code Online (Sandbox Code Playgroud)
显然,我可以使用类似漂亮的库或下载熊猫或其他东西,但我对此非常不感兴趣.
我只想在Jupyter笔记本单元格中输出行作为表格.我该怎么做呢?
ruf*_*fsl 62
我刚刚发现tabulate有一个HTML选项,使用起来相当简单.
与Wayne Werner的答案非常相似:
from IPython.display import HTML, display
import tabulate
table = [["Sun",696000,1989100000],
["Earth",6371,5973.6],
["Moon",1737,73.5],
["Mars",3390,641.85]]
display(HTML(tabulate.tabulate(table, tablefmt='html')))
Run Code Online (Sandbox Code Playgroud)
仍然在寻找简单易用的东西来创建更复杂的表格布局,比如乳胶语法和格式,以合并单元格并在笔记本中进行变量替换:
允许在Markdown单元格中引用Python变量#2958
Way*_*ner 46
我终于重新找到了我正在寻找的jupyter/IPython文档.
我需要这个:
from IPython.display import HTML, display
data = [[1,2,3],
[4,5,6],
[7,8,9],
]
display(HTML(
'<table><tr>{}</tr></table>'.format(
'</tr><tr>'.join(
'<td>{}</td>'.format('</td><td>'.join(str(_) for _ in row)) for row in data)
)
))
Run Code Online (Sandbox Code Playgroud)
(我可能略微理解了这些理解,但这display(HTML('some html here'))正是我们所需要的)
小智 39
有一个很好的技巧:使用pandas DataFrame包装数据.
import pandas as pd
data = [[1, 2], [3, 4]]
pd.DataFrame(data, columns=["Foo", "Bar"])
Run Code Online (Sandbox Code Playgroud)
它显示如下数据:
| Foo | Bar |
0 | 1 | 2 |
1 | 3 | 4 |
Run Code Online (Sandbox Code Playgroud)
tabletext很适合这个
import tabletext
data = [[1,2,30],
[4,23125,6],
[7,8,999],
]
print tabletext.to_text(data)
Run Code Online (Sandbox Code Playgroud)
结果:
???????????????????
? 1 ? 2 ? 30 ?
???????????????????
? 4 ? 23125 ? 6 ?
???????????????????
? 7 ? 8 ? 999 ?
???????????????????
Run Code Online (Sandbox Code Playgroud)
如果你不介意使用一点 html,这样的东西应该可以工作。
from IPython.display import HTML, display
def display_table(data):
html = "<table>"
for row in data:
html += "<tr>"
for field in row:
html += "<td><h4>%s</h4></td>"%(field)
html += "</tr>"
html += "</table>"
display(HTML(html))
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它
data = [[1,2,3],[4,5,6],[7,8,9]]
display_table(data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72998 次 |
| 最近记录: |