使用pandas将Excel格式数据清洗转换为数据库入库格式的可行性咨询
这个需求完全可以通过pandas实现,无需借助其他工具,实现代码如下:
import pandas as pd # 构造示例DataFrame d = {'Date' : ["Spiderman total", "Division A", "Division B", "Division C", "Superman total", "Division A", "Division B", "Division C" ], '1/4/20': [3,1,2,0,10,5,3,2], '1/11/20':[5,2,1,2,8,4,4,0], '1/18/20': [15,7,7,1,20,10,0,10] } df = pd.DataFrame(data=d) # 1. 提取业务线名称,向下填充到对应分部行 df['Business'] = df['Date'].where(df['Date'].str.contains('total')).ffill().str.replace(' total', '') # 2. 过滤掉合计行,仅保留分部数据 df = df[~df['Date'].str.contains('total')].copy() # 3. 提取分部标识 df['Division'] = df['Date'].str.replace('Division ', '') # 4. 宽表转长表,把所有日期列统一转为行格式 res = pd.melt( df, id_vars=['Business', 'Division'], var_name='date', value_name='totals' ) # 调整列顺序匹配需求格式 res = res[['date', 'Business', 'Division', 'totals']].reset_index(drop=True)
上述代码会自动适配所有日期列,无需手动新增修改逻辑,最终输出的res就是你需要的目标格式。
内容的提问来源于stack exchange,提问作者Seph77
相关产品推荐
相关产品推荐

