3
我有一個使用pivot_table方法創建的熊貓數據框。它的結構如下:重新排列熊貓數據透視表中的列
import numpy as np
import pandas
datadict = {
('Imps', '10day avg'): {'All': '17,617,872', 'Crossnet': np.nan, 'N/A': '17,617,872'},
('Imps', '30day avg'): {'All': '17,302,111', 'Crossnet': '110','N/A': '18,212,742'},
('Imps', '3day avg'): {'All': '8,029,438', 'Crossnet': '116', 'N/A': '8,430,904'},
('Imps', 'All'): {'All': '14,156,666', 'Crossnet': '113', 'N/A': '14,644,823'},
('Spend', '10day avg'): {'All': '$439', 'Crossnet': np.nan, 'N/A': '$439'},
('Spend', '30day avg'): {'All': '$468', 'Crossnet': '$0', 'N/A': '$492'},
('Spend', '3day avg'): {'All': '$209', 'Crossnet': '$0', 'N/A': '$219'},
('Spend', 'All'): {'All': '$368', 'Crossnet': '$0', 'N/A': '$381'}
}
df = pandas.DataFrame.from_dict(datadict)
df.columns = pandas.MultiIndex.from_tuples(df.columns)
我試圖重新安排下,在新秩序「花」和「小鬼」同時使用的以下方法,嵌套列然而,儘管被拋出任何錯誤的順序保持不變:
df['Spend']=df['Spend'].reindex_axis(['3day avg','10day avg','30day avg','All'],axis=1)
df['Spend']=df['Spend'][['3day avg','10day avg','30day avg','All']]
我在熊貓0.11,所以我想我堅持第二個解決方案。任何原因,甚至在新版本中沒有內置的方法來做到這一點? – ChrisArmstrong
@ChrisArmstrong它可能是一個整潔的方式,當然好像可能會有。可能值得在github上發佈enh請求: –
我嘗試了這樣的解決方案:mi = pd.MultiIndex.from_tuples(list(itertools.product([['Imps','Spend'],['3day avg','10day avg','30day avg','All']])))。這是正確的,因爲我在進行下一步時遇到錯誤df.reindex_axis(mi,1) – ChrisArmstrong