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. javascript - js判断一个数组是否重复2. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题3. java - tomcat服务经常晚上会挂,求解?4. angular.js - angularjs的自定义过滤器如何给文字加颜色?5. node.js - node express 中ajax post请求参数接收不到?6. javascript - 如何获取未来元素的父元素在页面中所有相同元素中是第几个?7. 关于docker下的nginx压力测试8. java - 原生CGLib内部方法互相调用时可以代理,但基于CGLib的Spring AOP却代理失效,为什么?9. docker镜像push报错10. linux运维 - python远程控制windows如何实现
