python 復(fù)雜表格合并
問(wèn)題描述
[{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色1','數(shù)量':'1',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色2','數(shù)量':'20',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色3','數(shù)量':'3',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色4','數(shù)量':'4',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色5','數(shù)量':'5',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色6','數(shù)量':'6',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色7','數(shù)量':'30',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色8','數(shù)量':'8',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色9','數(shù)量':'9',},{'ID':'1','訂單號(hào)':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色10','數(shù)量':'40',},{'ID':'2','訂單號(hào)':'456789','用戶名':'路人乙','產(chǎn)品':'XXX用品','顏色':'紅色','數(shù)量':'100',},{'ID':'3','訂單號(hào)':'123456789','用戶名':'路人丙','產(chǎn)品':'XXXX用品','顏色':'金色','數(shù)量':'300',},{'ID':'3','訂單號(hào)':'987654321','用戶名':'路人丙','產(chǎn)品':'XXXX用品','顏色':'紫色','數(shù)量':'100',},]
需要轉(zhuǎn)換表格為:
python3 如何實(shí)現(xiàn)這種復(fù)雜的表格排列
問(wèn)題解答
回答1:這個(gè)用pandas的groupby可能實(shí)現(xiàn),代碼供你參考
# coding: utf-8from __future__ import unicode_literalsimport pandas as pdlst = [ {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色1', '數(shù)量': '1', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色2', '數(shù)量': '20', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色3', '數(shù)量': '3', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色4', '數(shù)量': '4', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色5', '數(shù)量': '5', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色6', '數(shù)量': '6', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色7', '數(shù)量': '30', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色8', '數(shù)量': '8', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色9', '數(shù)量': '9', }, {'ID': '1', '訂單號(hào)': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色10', '數(shù)量': '40', }, {'ID': '2', '訂單號(hào)': '456789', '用戶名': '路人乙', '產(chǎn)品': 'XXX用品', '顏色': '紅色', '數(shù)量': '100', }, {'ID': '3', '訂單號(hào)': '123456789', '用戶名': '路人丙', '產(chǎn)品': 'XXXX用品', '顏色': '金色', '數(shù)量': '300', }, {'ID': '3', '訂單號(hào)': '987654321', '用戶名': '路人丙', '產(chǎn)品': 'XXXX用品', '顏色': '紫色', '數(shù)量': '100', }]df = pd.DataFrame(lst)df['數(shù)量'] = df['數(shù)量'].apply(lambda x: int(x))df['備注'] = ’’df1 = df.groupby(['ID','用戶名','產(chǎn)品', ’備注’,'訂單號(hào)','顏色']).sum()#導(dǎo)出到exceldf1.to_excel(’test.xlsx’)#輸出htmlprint df1.to_html()回答2:
先按順序排好以后再合并單元格落。
回答3:你需要一個(gè)操作Excel的庫(kù),比如:openpyxl。
然后查這個(gè)庫(kù)怎么填數(shù)據(jù),怎么合并單元格。
http://openpyxl.readthedocs.i...
相關(guān)文章:
1. html5 - ElementUI table中el-table-column怎么設(shè)置百分比顯示。2. python - 使用readlines()方法讀取文件內(nèi)容后,再用for循環(huán)遍歷文件與變量匹配時(shí)出現(xiàn)疑難?3. 對(duì)mysql某個(gè)字段監(jiān)控的功能4. css3 - less或者scss 顏色計(jì)算的知識(shí)應(yīng)該怎么學(xué)?或者在哪里學(xué)?5. 注冊(cè)賬戶文字不能左右分離6. javascript - table列過(guò)多,有什么插件可以提供列排序和選擇顯示列的功能7. css - 網(wǎng)頁(yè)div區(qū)塊 像蘋(píng)果一樣可左右滑動(dòng) 手機(jī)與電腦8. javascript - 數(shù)組的過(guò)濾和渲染9. html - vue項(xiàng)目中用到了elementUI問(wèn)題10. JavaScript事件
