‘壹’ python HTML展示表格数据(有合并的单元格)
拷贝一下代码并保存到本地,然后运行它,再打开那个Demo的链接就可以看到效果了
#!/usr/bin/envpython3
fromos.pathimportdirname,abspath,joinasjoinpath
L=[(1,2),(1,2),(1,3),(2,4),(2,5)]
column_names=('列名','数据')
odict=OrderedDict()
fork,vinL:
ifknotinodict:
odict[k]=[v]
else:
odict[k].append(v)
sa='''
<!DOCTYPEHTML>
<metacharset="UTF-8">
<html>
<body>
<tableborder="1"cellpadding="10">
<tr>
<th>{}</th>
<th>{}</th>
</tr>
'''.format(*column_names)
sc='''
</table>
</body>
</html>
'''
sb=[]
tdform='<tdalign="center">{}</td>'.format
fork,vinodict.items():
iflen(v)==1:
sb.append('<tr>')
sb.append(tdform(k))
sb.append(tdform(v))
sb.append('</tr>')
else:
fori,subvinenumerate(v):
sb.append('<tr>')
ifi==0:
sb.append('<tdrowspan="{}"align="center">{}</td>'.format(
len(v),k))
sb.append(tdform(subv))
sb.append('</tr>')
fn='table.html'
ss=sa+' '.join(sb)+sc
try:
frombs4importBeautifulSoup
soup=BeautifulSoup(ss)
ss=soup.prettify()
except:
pass
withopen(fn,'w')asf:
f.write(ss)
print(ss)
print('Demo:file://'+joinpath(abspath(dirname(__file__)),fn))
‘贰’ Python:数据框数据合并
Python中数据框数据合并方法多种多样,包括merge()函数、append()方法、concat()和join()方法。下面将详细介绍这些方法及其使用。
1.merge()函数
merge()函数允许我们根据特定条件将两个数据框连接在一起。例如,假设我们有两个数据框,movies和author,且需要将author表中的author信息匹配到movies表中,通过设置连接字段,可以实现数据合并。
在使用merge()函数时,需要确保连接字段在两个数据框中名称一致或指定正确的连接字段。保留左侧表的全部内容,右侧表的部分行匹配到左侧表,可设置不同的连接方式(如left、right、outer、inner等),并可通过on参数指定连接字段。
然而,merge()函数的缺点在于匹配后可能会出现重复信息,需要手动处理。
2.append()方法
append()方法用于在数据框的末尾添加新的记录行。这要求两个数据框的字段数量相同,但字段名可以不同,只要对应位置的内容一致即可。append()方法默认不重新编排索引,但可通过设置参数ignore_index为True来重新编排。
3.concat()函数
concat()函数用于数据拼接,支持追加行和列。追加行与append()方法类似,而追加列则需使用rename()方法重新设置列名。推荐使用merge()函数进行列追加,因为concat()函数在追加列后,列名可能丢失。
4.join()方法
join()方法主要针对数据匹配操作,允许在数据框之间添加列,但不添加行。此方法基于索引进行匹配,需要事先设置数据框的索引列。匹配方式包括左连接、右连接和全连接,匹配后不存在的值将被填充为NaN。
总结以上方法,它们各有优势和适用场景。根据具体需求选择合适的数据合并方法,可以有效提高数据处理的效率。在实践中,根据项目特点灵活运用这些方法,将帮助你更高效地完成数据处理任务。