以编程方式编辑表以适应内容

2024-09-26 21:49:57 发布

您现在位置:Python中文网/ 问答频道 /正文

可以从CSV文件创建HTML页面,包括以下内容:

import pandas as pd

df = pd.read_csv('../data.csv',delimiter=';', engine='python')
df.to_html('csv.html')

此表的列宽似乎与标题(列标题)的大小有关,但对于某些列,内容大于列标题,并被包装到下一行。对于多字单元格(aaaaaaaaa aaaaaaaaa),以下CSV会出现这种情况:

^{pr2}$

我想使列宽足够大,以适应内容(避免换行)。如何以编程方式(使用Python)到达那里?在


Tags: csvimport标题内容pandasdfreaddata
1条回答
网友
1楼 · 发布于 2024-09-26 21:49:57

答案基于this。在

import pandas as pd

filename = 'csv.html'

df = pd.read_csv('../data.csv',delimiter=';', engine='python')

html_begin = '\
<meta charset="UTF-8">\n\
<html>\n\
<head><link rel="stylesheet" type="text/css" href="csv.css"></head>\n\
<body>\n\n'

html_end = '\n\
</body>\n\
</html>\n'

with open(filename, 'w') as f:   
    f.write(html_begin)
    df.to_html(f)
    f.write(html_end)

并且csv.css就像:

^{pr2}$

或者(我会说是一个更好的选择),你可以避免CSS的需要,通过Pandas Style来做任何事情,比如:

import pandas as pd

filename = 'csv_style.html'

df = pd.read_csv('../data.csv',delimiter=';', engine='python')

style =  df.style
style.set_properties(**{'text-align': 'center',
                       'white-space': 'nowrap'})

with open(filename, 'w') as f:  
    f.write(style.render())

相关问题 更多 >

    热门问题