带有CSS样式的Pandas df.to_html

时间:2015-10-20 00:36:11

标签: python pandas

任何人都可以解释为什么以下输出没有数据? Results.html未生成。

df = pd.read_csv(os.path.join(root,filename), skip_blank_lines=True)
df.dropna(how="all", inplace=True)
data = df.sort(ascending=True)
HTML('''<style>.white_space_df td { white-space: normal; }</style>''')
HTML(data.to_html(os.path.join(root, "Results.html"), index=False, na_rep="NA", classes='white_space_df'))

更新

我能够自己解决这个问题,只是包住了下面的其他人,这是工作的例子。

df = pd.read_csv(os.path.join(root,filename), skip_blank_lines=True)
df.dropna(how="all", inplace=True)
data = df.sort(ascending=True)
style = '''<style>.white_space_df td { word-wrap: break-word; }</style>'''
style + data.to_html(os.path.join(root, "Results.html"), index=False, na_rep="NA", classes='white_space_df') 

1 个答案:

答案 0 :(得分:1)

to_html方法保存 html文件(当传递buf参数时),也就是说,它将xml保存到Results.html ...并且该方法返回None

data.to_html(os.path.join(root, "Results.html"), index=False, na_rep="NA", classes='white_space_df')

如果你没有传递buf参数(第一个),它会返回一个字符串:

In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])

In [12]: df.to_html()
Out[12]: '<table border="1" class="dataframe">\n  <thead>\n    <tr style="text-align: right;">\n      <th></th>\n      <th>A</th>\n      <th>B</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>3</td>\n      <td>4</td>\n    </tr>\n  </tbody>\n</table>'

所以你想把这个字符串传递给HTML(而不是None):

HTML(data.to_html(index=False, na_rep="NA", classes='white_space_df'))