使用python在一个html页面中显示拆分的data_frame的HTML代码
Posted
技术标签:
【中文标题】使用python在一个html页面中显示拆分的data_frame的HTML代码【英文标题】:HTML code to show splitted data_frame in one html page using python 【发布时间】:2015-10-26 10:29:43 【问题描述】:我是 html/css 的新手,对以 html 格式显示的数据有疑问。我有一个很长的列表,我想将其拆分并以 html 格式显示为两个单独的列。例如,而不是:
Col1 Col2
1 a
2 a
3 a
4 a
5 b
6 b
7 b
8 b
我想把文字看成
Col1 Col2 Col1 Col2
1 a 5 b
2 a 6 b
3 a 7 b
4 a 8 b
我的 html/css 代码应该如何将上面的数据放在拆分表中?
对于第一个输出,我正在使用代码 python 查看一个表中 2 列中的所有数据:
start = '''<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta></head> '''
font_size = '14pt'
style = '''<style media="screen" type="text/css">
table.table1
border-collapse: collapse;
width: 20%;
font-size: '''+font_size+''';
td
text-align: left;
border: 1px solid #ccc;
th
text-align: left;
border: 1px solid #ccc;
background-color: #072FB1;
</style>
'''
title = '''<div align="center"></br><font size = "24"><strong>'''+title+'''</strong></font></br></br></</div>'''
df_data1 = df_data[1:10]
data = df_data1.to_html( index = False, na_rep ='' )
data = data.replace('None', '')
style_headers = 'background-color: #072FB1; color: #ffffff;'
style_status_new ='background-color: #587EF8; color: #ffffff;font-weight:bold'
style_first_col = 'font-weight:bold;'
total = 'TOTAL'
soup = bs4.BeautifulSoup(data)
soup.thead.tr.attrs['style'] = style_headers
html = start+lentos+style+'''<body bgcolor="#FFFFFF">'''+title+time+unicode.join(u'\n',map(unicode,soup))+finish
try:
with open(dir_files+'engines_tv_html.html', 'w') as file:
file.write(html.encode('UTF-8'))
except Exception, e:
log_error()
在df_data[1:10]
中,我将我的数据拆分为单独的data_frames。
所以问题是在一个html页面中查看拆分的data_frame(左侧一个表,右侧另一个表)
【问题讨论】:
你能说明df_data
是如何定义的吗?
con = pyodbc.connect('DRIVER=SQL Server;Server=SQL;Database=AA;UID=user;PWD=pswd) df_data = pd.io.sql.read_frame(sql_data,缺点)
【参考方案1】:
由于您的数据由pandas.DataFrame
管理,我建议您尝试使用pandas 构建您的表。
pd.merge(left=df_data[0:4], left_index=True,
right=df_data[4:8].reset_index(drop=True), right_index=True,
suffixes=['_left','_right'], how='outer')
Col1_left Col2_left Col1_right Col2_right
0 1 a 5 b
1 2 a 6 b
2 3 a 7 b
3 4 a 8 b
【讨论】:
谢谢,但回答并不能解决我的问题。没关系,当我们知道确切的行数时。但是例如如果我们不知道并且我们的数据输出发生了变化,那么这个表不是根据 tada qty 调整的。例如。如果我们离开 left=df_data[0:4] 和 right=df_data[4:8] 将有 7 条记录,而不是 8 条,我将在左表中获得 3 条记录,在右表中获得 3 条记录。我确实想在左表中看到 4 条记录,在右表中看到 3 条记录 @orangutangas 我刚刚添加的how='outer'
将确保您始终获得所有行。【参考方案2】:
找到解决方案! 当我们从 data_frame 读取数据时,我们可以先将其截断为所需的数量,然后我们需要删除以前的索引,然后我们可以连接该数据:
pirmas_m = df_data[0:30].reset_index(drop=True)
antras_m = df_data[30:60].reset_index(drop=True)
trecias_m = df_data[60:90].reset_index(drop=True)
ketvirtas_m = df_data[90:120].reset_index(drop=True)
opa = pd.concat( [pirmas_m, antras_m, trecias_m, ketvirtas_m], axis=1 )
【讨论】:
以上是关于使用python在一个html页面中显示拆分的data_frame的HTML代码的主要内容,如果未能解决你的问题,请参考以下文章
为什么我的浏览器在使用webpack拆分节点模块后显示空白页面?