3
在我的主df中,我有一列與其他兩列組合在一起,創建的值如下所示:A1_43567_1。第一個數字代表一種評估方式,第二個數字代表問題ID,最後一個數字代表評估的問題位置。我計劃創建一個數據透視表,將每個唯一值作爲一列來查看多個學生對每個項目的選擇。但我希望樞軸的順序是問題位置,或串聯中的第三個值。本質上,這輸出:通過具有多個值的列對DF進行排序
Student ID A1_45678_1 A1_34551_2 A1_11134_3 etc....
12345 1 0 0
12346 0 0 1
12343 1 1 0
我試着用原來的專欄中,我希望它由(問題上的立場)進行排序,然後創建數據透視表排序我的數據幀,但這並不導致上述結果我在找。有沒有辦法按列中的第三個值對原始串聯值進行排序?或者是否有可能按每列中的第三個值對數據透視表進行排序?
當前的代碼:
demo_pivot.sort(['Question Position'], ascending=True)
demo_pivot['newcol'] = 'A' + str(interim_selection) + '_' + ,\
demo_pivot['Item ID'].map(str) + "_" + demo_pivot['Question Position'].map(str)
demo_pivot= pd.pivot_table(demo_pivot, index='Student ANET ID',values='Points Received',\
columns='newcol').reset_index()
但是生成的輸出:
Student ID A1_45678_1 A1_34871_7 A1_11134_15 etc....
12345 1 0 0
12346 0 0 1
12343 1 1 0
最後,您可以使用'demo_pivot = demo_pivot [sort_columns(demo_pivot.columns)]來代替'.loc'' – Alexander