首页 > 解决方案 > 在 Python(熊猫)中重构数据框

问题描述

这是原始数据的格式:

data_01 = {'State': ['New York', 'California'],
           'May_01_A': [1, 2],
           'May_01_B': [3, 4],
           'May_02_A': [5, 6],
           'May_02_B': [7, 8],}

df_01 = pd.DataFrame(data_01)

我想像这样重组它:

data_02 = {'Date': ['May_01', 'May_01', 'May_02', 'May_02'],
           'State': ['New York', 'California', 'New York', 'California'],
           'Obs_A': [1, 2, 3, 4],
           'Obs_B': [5, 6, 7, 8],}

df_02 = pd.DataFrame(data_02)

任何的建议都受欢迎。谢谢!

标签: pandasdata-science

解决方案


让我们做wide_to_long

s=pd.wide_to_long(df_01,['May_01','May_02'],i='State',j='Date',suffix='\\w+',sep='_').unstack(1).stack(0).reset_index()
Date       State level_1  A  B
0       New York  May_01  1  3
1       New York  May_02  5  7
2     California  May_01  2  4
3     California  May_02  6  8

推荐阅读