使用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拆分节点模块后显示空白页面?

TCPDF 在多个页面上拆分 html 表

如何使用 Python 使用管道分隔符拆分文本文件,然后根据条件选择列?

如何在JSP页面中显示当前时间

Python序列拆分操作符与映射拆分操作符实例