繁体   English   中英

csv 到 html 表(熊猫) - 格式问题

[英]csv to html table (pandas) - formatting problem

我有一个简单的.csv 包含房间号和房间内的设备类型。 它看起来像这样:

room1,[computer]
room2,[computer, printer, fax]
room3,[computer, printer, fax, keurig, shredder]
room4,[computer, fax]

我可以使用 pd.to_html function 轻松生成 html 表,但设备列表的格式设置为全部在一行上。 我希望它看起来像这样:

room1   computer
room2   computer
        printer
        fax
room3   computer
        printer
        fax
        keurig
        shredder

我在 pd.to_html function 中尝试了各种选项,但没有任何效果。 有没有一种简单的方法可以在逗号处应用自动换行?

这可能对您有用 - 使用格式化程序在第二列中用换行符替换逗号,并在 .to_html() 方法中使用 escape=False:

import pandas as pd
from io import StringIO
from IPython.core.display import display, HTML

with open('test.csv', 'r') as f:
    data = f.read().replace('[', '"').replace(']', '"')

df = pd.read_csv(StringIO(data), header=None)

html_df = df.to_html(index=False, header=False, escape=False,
                    formatters=[None, lambda x: x.replace(', ', '<br>')])

display(HTML(html_df))

Output:

 <table border="1" class="dataframe"> <tbody> <tr> <td>room1</td> <td>computer</td> </tr> <tr> <td>room2</td> <td>computer<br>printer<br>fax</td> </tr> <tr> <td>room3</td> <td>computer<br>printer<br>fax<br>keurig<br>shredder</td> </tr> <tr> <td>room4</td> <td>computer<br>fax</td> </tr> </tbody></table>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM