我有一个简单的.csv,其中包含房间编号和房间中的设备类型。它看起来像这样:
room1,[computer]
room2,[computer, printer, fax]
room3,[computer, printer, fax, keurig, shredder]
room4,[computer, fax]
我可以使用pd.to_html函数轻松地生成一个html表,但设备列表的格式是在一行上。我希望它看起来像这样:
room1 computer
room2 computer
printer
fax
room3 computer
printer
fax
keurig
shredder
我尝试了pd.to_html函数中的各种选项,但都不起作用。有没有一种简单的方法可以在逗号处使用换行符?
这可能对您有用-使用格式化程序将第二列中的逗号替换为换行符,并在.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))
输出:
<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>