python 复杂表格合并
问题描述
[{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色1','数量':'1',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色2','数量':'20',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色3','数量':'3',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色4','数量':'4',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色5','数量':'5',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色6','数量':'6',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色7','数量':'30',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色8','数量':'8',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色9','数量':'9',},{'ID':'1','订单号':'123456','用户名':'路人甲','产品':'XX用品','颜色':'色10','数量':'40',},{'ID':'2','订单号':'456789','用户名':'路人乙','产品':'XXX用品','颜色':'红色','数量':'100',},{'ID':'3','订单号':'123456789','用户名':'路人丙','产品':'XXXX用品','颜色':'金色','数量':'300',},{'ID':'3','订单号':'987654321','用户名':'路人丙','产品':'XXXX用品','颜色':'紫色','数量':'100',},]
需要转换表格为:

python3 如何实现这种复杂的表格排列
问题解答
回答1:这个用pandas的groupby可能实现,代码供你参考
# coding: utf-8from __future__ import unicode_literalsimport pandas as pdlst = [ {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色1', '数量': '1', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色2', '数量': '20', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色3', '数量': '3', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色4', '数量': '4', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色5', '数量': '5', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色6', '数量': '6', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色7', '数量': '30', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色8', '数量': '8', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色9', '数量': '9', }, {'ID': '1', '订单号': '123456', '用户名': '路人甲', '产品': 'XX用品', '颜色': '色10', '数量': '40', }, {'ID': '2', '订单号': '456789', '用户名': '路人乙', '产品': 'XXX用品', '颜色': '红色', '数量': '100', }, {'ID': '3', '订单号': '123456789', '用户名': '路人丙', '产品': 'XXXX用品', '颜色': '金色', '数量': '300', }, {'ID': '3', '订单号': '987654321', '用户名': '路人丙', '产品': 'XXXX用品', '颜色': '紫色', '数量': '100', }]df = pd.DataFrame(lst)df['数量'] = df['数量'].apply(lambda x: int(x))df['备注'] = ’’df1 = df.groupby(['ID','用户名','产品', ’备注’,'订单号','颜色']).sum()#导出到exceldf1.to_excel(’test.xlsx’)#输出htmlprint df1.to_html()回答2:
先按顺序排好以后再合并单元格落。
回答3:你需要一个操作Excel的库,比如:openpyxl。
然后查这个库怎么填数据,怎么合并单元格。
http://openpyxl.readthedocs.i...
相关文章:
1. 点字符“” 在MVC Web API 2中进行请求,例如api / people / STAFF.452872. javascript - thymeleaf模板 只有length如何循环生成标签?3. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?4. 如何解决docker宿主机无法访问容器中的服务?5. 求大神指点js修改margintop导致无限下滑的问题6. node.js - 我是一个做前端的,求教如何学习vue,node等js引擎?7. javascript - node如何关闭主进程后 打开另一进程?8. java - 在Spring初始化过程中阻塞合理吗?9. golang - 用IDE看docker源码时的小问题10. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?

网公网安备