如何将表格行数据重排至不同列:员工生产数据转置需求
嘿,这个需求其实很常见,用Python的pandas库就能轻松实现表格的宽格式转换,我给你具体的代码和步骤:
用Python Pandas实现的解决方案
首先我们把原始数据转换成DataFrame,然后通过索引调整和转置来得到目标格式:
import pandas as pd # 第一步:构造原始数据的DataFrame data = { 'EmpId': ['001', '001', '002', '002'], 'Date': ['01/01/2018', '01/02/2018', '01/01/2018', '01/02/2018'], 'ProductA': [5, 2, 3, 1], 'ProductB': [3, 5, 4, 2] } df = pd.DataFrame(data) # 第二步:转换为目标格式 # 设置多层索引,将Date转为列的上层 pivoted_df = df.set_index(['EmpId', 'Date']).unstack(level='Date') # 调整列的层次顺序,让日期作为上层,产品作为下层 pivoted_df = pivoted_df.reorder_levels([1, 0], axis=1).sort_index(axis=1) # 把EmpId从索引转回普通列 pivoted_df = pivoted_df.reset_index() # 第三步:输出美观的表格 print(pivoted_df.to_string(index=False))
运行这段代码后,输出的结果就是你想要的报表格式:
EmpId 01/01/2018 ProductA 01/01/2018 ProductB 01/02/2018 ProductA 01/02/2018 ProductB 001 5 3 2 5 002 3 4 1 2
如果你用Excel的替代方案
如果不想写代码,用Excel的数据透视表也能搞定:
- 选中原始数据区域,点击「插入」→「数据透视表」
- 把
EmpId拖到「行」区域,Date拖到「列」区域,ProductA和ProductB拖到「值」区域 - 在数据透视表的列区域,调整每个日期下的产品顺序,就能得到和目标一致的报表格式
内容的提问来源于stack exchange,提问作者user3536460
相关产品推荐
相关产品推荐

