Python中如何重塑数据集?用stack()实现宽表转长表
在Python中重塑数据集的完整实现步骤
没问题,我来一步步带你实现这个宽表转长表的操作,用pandas就能轻松搞定,具体步骤如下:
步骤1:导入pandas库
首先得确保你安装了pandas,然后导入它:import pandas as pd步骤2:构造初始的宽表DataFrame
把你给出的原始数据转换成pandas的DataFrame对象:# 定义原始数据 raw_data = { 'Source': ['ABC', 'XYZ'], 'Jan_values': [100, 200], 'Feb_values': [200, 300], 'Mar_values': [300, 400] } df = pd.DataFrame(raw_data)步骤3:使用
stack()方法重塑数据
直接用stack()之前,我们需要先把Source列设为索引,这样它不会被堆叠到行里;堆叠后再重置索引把多级索引转成普通列:# 设置Source为索引,堆叠月份列,然后重置索引 reshaped_df = df.set_index('Source').stack().reset_index()步骤4:整理列名和月份格式
堆叠后的列名是默认的,我们需要改成你想要的名称,同时把月份列的_values后缀去掉:# 重命名列 reshaped_df.columns = ['Source', 'Month', 'values'] # 去除月份列的后缀 reshaped_df['Month'] = reshaped_df['Month'].str.replace('_values', '')查看最终结果
打印一下处理后的DataFrame,就是你想要的格式了:print(reshaped_df)
运行上面的代码后,输出结果如下:
Source Month values 0 ABC Jan 100 1 ABC Feb 200 2 ABC Mar 300 3 XYZ Jan 200 4 XYZ Feb 300 5 XYZ Mar 400
内容的提问来源于stack exchange,提问作者harry
相关产品推荐
相关产品推荐

