『壹』 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。
總結以上方法,它們各有優勢和適用場景。根據具體需求選擇合適的數據合並方法,可以有效提高數據處理的效率。在實踐中,根據項目特點靈活運用這些方法,將幫助你更高效地完成數據處理任務。