python中pivot table 透視表例項
阿新 • • 發佈:2018-12-10
下面是python透視表的簡單例項,希望對學習這一塊的朋友們能夠有所幫助。
import pandas as pd def pivot_table(): data_df = pd.read_csv("data.csv") # 形成基礎的成績表 pivot_df = data_df.pivot(index='userNum', columns='subjectCode', values='score') pivot_df.columns.name = None # 按照課程號(subjectCode)進行分組 data_df_G = data_df.groupby(["subjectCode"], as_index=False) # 位置資訊標記 temp_count = 1 for index, subject_df in data_df_G: # 進行透視表重組,運用dataframe的insert方法,把成績排名(通過dataframe的rank方法實現)新增到各科成績之後 pivot_df.insert(temp_count,"rank_" + str(index), pivot_df[index].rank(ascending=False,method='min')) # 執行dataframe的rename方法,重新命名各行的標題名 pivot_df.rename(columns={index:("score_" + str(index))},inplace=True) temp_count += 2 print(pivot_df) # 把userNum新增到列中 pivot_df['userNum'] = pivot_df.index # 將索引名稱置空 pivot_df.index.name = None temp_df = data_df.loc[:,["userNum","userName"]] # 通過dataframe中的drop_duplicates方法去除重複的值 temp_df.drop_duplicates(inplace=True) # 剩餘列拼接(on代表要加入的標籤的名稱,how代表加入的方式,其中left表示僅使用左框架中的鍵,類似於SQL左外連線; 保留關鍵順序) pivot_df = temp_df.merge(pivot_df,on="userNum",how="left") print(pivot_df) pivot_table()
例項資料集如下:
userNum,score,subjectCode,subjectName,userName 001,90,01,大資料與資料探勘,王盟 002,96,01,大資料與資料探勘,劉想 003,93,01,大資料與資料探勘,歐陽天天 004,87,01,大資料與資料探勘,劉美麗 005,90,01,大資料與資料探勘,上官笑 001,87,02,網路安全,王盟 002,82,02,網路安全,劉想 003,80,02,網路安全,歐陽天天 004,87,02,網路安全,劉美麗 005,92,02,網路安全,上官笑 001,90,03,計算機基礎,王盟 002,96,03,計算機基礎,劉想 003,93,03,計算機基礎,歐陽天天 004,87,03,計算機基礎,劉美麗 005,89,03,計算機基礎,上官笑 001,87,04,資料結構,王盟 002,82,04,資料結構,劉想 003,80,04,資料結構,歐陽天天 004,87,04,資料結構,劉美麗 005,70,04,資料結構,上官笑
建議在學習一種新的語言或者技術的時候,檢視官方的權威文件。