2016-05-25 72 views
1

我必須處理的數據將小時數據視爲列。我想將其轉換爲索引。示例如下:python/pandas - 將列標題轉換爲索引

year month day 1 2 3 4 5 ... 24 
2015  1  1  a b ................... c 
2015  1  2  d e ................... f 
2015  1  3  g h ................... i 

我要讓輸出文件是這樣的:

year month day hour value 
2015  1  1  1  a 
2015  1  1  2  b 
    .  .  .  .  . 
2015  1  1  24 c 
2015  1  2  1  d 
    .  .  .  .  . 

目前使用python 3.4與大熊貓模塊

回答

1

使用set_indexstack

print (df.set_index(['year','month','day']) 
     .stack() 
     .reset_index(name='value') 
     .rename(columns={'level_3':'hour'})) 

    year month day hour value 
0 2015  1 1 1  a 
1 2015  1 1 2  b 
2 2015  1 1 24  c 
3 2015  1 2 1  d 
4 2015  1 2 2  e 
5 2015  1 2 24  f 
6 2015  1 3 1  g 
7 2015  1 3 2  h 
8 2015  1 3 24  i 

的另一個解決方案和sort_values

print (pd.melt(df, id_vars=['year','month','day'], var_name='hour') 
     .sort_values(['year', 'month', 'day','hour'])) 

    year month day hour value 
0 2015  1 1 1  a 
3 2015  1 1 2  b 
6 2015  1 1 24  c 
1 2015  1 2 1  d 
4 2015  1 2 2  e 
7 2015  1 2 24  f 
2 2015  1 3 1  g 
5 2015  1 3 2  h 
8 2015  1 3 24  i 
+0

哇!感謝您及時的回覆。我用你的第一個建議。 – sndrosilva

相關問題