Реструктуризация кадра данных в Python (pandas) - PullRequest
1 голос
/ 16 апреля 2020

Вот формат исходных данных:

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)

Любой совет будет приветствоваться. Спасибо!

1 Ответ

0 голосов
/ 16 апреля 2020

Давайте сделаем 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
...