python 復雜表格合并
問題描述
[{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色1','數(shù)量':'1',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色2','數(shù)量':'20',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色3','數(shù)量':'3',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色4','數(shù)量':'4',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色5','數(shù)量':'5',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色6','數(shù)量':'6',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色7','數(shù)量':'30',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色8','數(shù)量':'8',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色9','數(shù)量':'9',},{'ID':'1','訂單號':'123456','用戶名':'路人甲','產(chǎn)品':'XX用品','顏色':'色10','數(shù)量':'40',},{'ID':'2','訂單號':'456789','用戶名':'路人乙','產(chǎn)品':'XXX用品','顏色':'紅色','數(shù)量':'100',},{'ID':'3','訂單號':'123456789','用戶名':'路人丙','產(chǎn)品':'XXXX用品','顏色':'金色','數(shù)量':'300',},{'ID':'3','訂單號':'987654321','用戶名':'路人丙','產(chǎn)品':'XXXX用品','顏色':'紫色','數(shù)量':'100',},]
需要轉(zhuǎn)換表格為:
python3 如何實現(xiàn)這種復雜的表格排列
問題解答
回答1:這個用pandas的groupby可能實現(xiàn),代碼供你參考
# coding: utf-8from __future__ import unicode_literalsimport pandas as pdlst = [ {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色1', '數(shù)量': '1', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色2', '數(shù)量': '20', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色3', '數(shù)量': '3', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色4', '數(shù)量': '4', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色5', '數(shù)量': '5', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色6', '數(shù)量': '6', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色7', '數(shù)量': '30', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色8', '數(shù)量': '8', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色9', '數(shù)量': '9', }, {'ID': '1', '訂單號': '123456', '用戶名': '路人甲', '產(chǎn)品': 'XX用品', '顏色': '色10', '數(shù)量': '40', }, {'ID': '2', '訂單號': '456789', '用戶名': '路人乙', '產(chǎn)品': 'XXX用品', '顏色': '紅色', '數(shù)量': '100', }, {'ID': '3', '訂單號': '123456789', '用戶名': '路人丙', '產(chǎn)品': 'XXXX用品', '顏色': '金色', '數(shù)量': '300', }, {'ID': '3', '訂單號': '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)品', ’備注’,'訂單號','顏色']).sum()#導出到exceldf1.to_excel(’test.xlsx’)#輸出htmlprint df1.to_html()回答2:
先按順序排好以后再合并單元格落。
回答3:你需要一個操作Excel的庫,比如:openpyxl。
然后查這個庫怎么填數(shù)據(jù),怎么合并單元格。
http://openpyxl.readthedocs.i...
相關(guān)文章:
