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']]
나는 판다 (pandas) 0.11에 속해 있기 때문에 제 2의 해결책을 고수하고 있습니다. 새 버전에서도이 작업을 수행 할 수있는 기본 방법이없는 이유는 무엇입니까? – ChrisArmstrong
@ChrisArmstrong 깔끔한 방법이있을 수 있습니다. 분명히있을 수있는 것처럼 보입니다. github에서 enh 요청을 게시 할 가치가 있습니다. –
mi = pd.MultiIndex.from_tuples (list (itertools.product ([[Imps ','Spend '], ['3day avg ','10day 평균 ','30 일 평균 ','전체 ']]))). 다음 단계를 수행 할 때 오류가 발생하기 때문에 정확합니까? df.reindex_axis (mi, 1) – ChrisArmstrong