[英]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.