我想將數據框重塑為具有兩個級別的列,而不指定子級別的名稱。例如,最初我的數據如下所示,索引為“日期”和“產品”,然后是一些列: a bdate product 2011-11 foo 1. 2.1 2011-12 foo 2.432 2.3 2012-01 bar 0.4 1.7 2012-01 foo 0.84 1.8 2014-06 bar 0. 2. 2014-07 bar 1.68 3. 請注意,每個日期有一行,產品組合(索引是唯一的)。我想將其重塑為單個索引日期,將產品移動到列級別: foo bar a b a bdate 2011-11 1. 2.1 NaN NaN2011-12 2.432 2.3 NaN NaN2012-01 0.84 1.8 0.4 1.72014-06 NaN NaN 0. 2. 2014-07 NaN NaN 1.68 3. 我不確定如何編寫數據透視表,因為列名 a 和 b 不是固定的,并且每次此過程運行時可能或多或少。
1 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
使用unstack和swaplevel:
df.unstack(1).swaplevel(1,0, axis=1).sort_index(1)
product bar foo
a b a b
date
2011-11 NaN NaN 1.000 2.1
2011-12 NaN NaN 2.432 2.3
2012-01 0.40 1.7 0.840 1.8
2014-06 0.00 2.0 NaN NaN
2014-07 1.68 3.0 NaN NaN
添加回答
舉報
0/150
提交
取消