PandasのMultiIndexカラムの一部をStackしたいのですが、
set_indexでABCカラムをインデックス化してからStackすると、Valuesの並びは想定通りなのですが、
Index名がタプルになってしまいます。
タプルにせず、元のカラム名に変更したいです。
python
1import pandas as pd 2import numpy as np 3columns=pd.MultiIndex.from_product([['M1','M2','M3'], ['W1','W2','W3','W4','W5']], 4names=['month','week']) 5 6data=np.round(np.random.randn(4,15),1) 7multidata=pd.DataFrame(data,columns=columns) 8print(multidata) 9 10test=pd.DataFrame(data=np.round(np.random.randn(4,3),1),index=[0,1,2,3],columns=list('ABC')) 11print(test) 12 13test2=pd.concat([test,multidata],axis=1) 14print(test2) 15 16test2 = test.copy() 17test2.columns = pd.MultiIndex.from_product([['Append'], test.columns], names=columns.names) 18print(test2) 19 20test3=pd.concat([test2,multidata],axis=1) 21print(test3) 22 23 24test4=test3.set_index([('Append', 'A'), ('Append', 'B'), ('Append', 'C')]) 25test4 26 27test4.stack(level=0) 28
set_indexでABCカラムをインデックス化してからStackすると、Valuesの並びは想定通りなのですが、
Index名がタプルになってしまいます。
(test4.rename_axis(index=['A', 'B','C'])としたところエラーが発生します。)
回答1件
あなたの回答
tips
プレビュー