Python unpivot dataframe с повторяющимися именами столбцов - PullRequest
0 голосов
/ 03 марта 2019

У меня есть огромный файл Excel с такими данными:

DATE          OIL   GAS   WATER   OIL   GAS   WATER

01-01-2018    100   200   300     10    20    30    
01-02-2018    200   500   300     30    40    10    
01-03-2018    10    50    30      20    40    10 

...

Как я могу преобразовать его в формат ниже, используя python:

DATE         OIL   GAS   WATER

01-01-2018   100   200   300    
01-02-2018   200   500   300    
01-03-2018   10    50    30    
01-01-2018   10    20    30    
01-02-2018   30    40    10    
01-03-2018   20    40    10

1 Ответ

0 голосов
/ 07 марта 2019

Можно использовать столбцы pd.melt(Dataframe,...) и concat df ( Dataframe ), последовательно:

df1 = pd.melt(df,id_vars=['Date'],value_vars=['Oil','Oil.1'], value_name='Oil')
df2 = pd.melt(df,id_vars=['Date'],value_vars=['Gas','Gas.1'], value_name='Gas')
df3 = pd.melt(df,id_vars=['Date'],value_vars=['Water','Water.1'], value_name='Water')

pd.concat([df1.Date,df1.Oil,df2.Gas,df3.Water],axis=1)
...