csv到html表(panda)-格式问题



我有一个简单的.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>

最新更新