DataFrame的先轉換成matrix,然後實現轉置,再重新命名列名跟索引
阿新 • • 發佈:2018-12-12
#################測試模型 save_model_path = os.path.join(prj_path, "shixin_cox_model.pkl") df = pd.read_csv('/home/sc/Downloads/tmp/shixin_cox_all_data_to_model_new.csv') clf=joblib.load(save_model_path) c = ['shixin_label', 'survival_time', 'network_fr_judgedoc_cnt','judgedoc_cnt'] df1=df[c] df1 = df1[0:100] # print(df1['survival_time']) df1 = df1.sort_values('survival_time',ascending = True) # print(df1['survival_time']) # print(df1) df1 = df1.fillna(0) # shixin_0 = df1[(df1['shixin_label'] == 0)][0:100] # shixin_1 = df1[(df1['shixin_label'] == 1)][0:300] X=df1[['network_fr_judgedoc_cnt','judgedoc_cnt']] # times =df1['survival_time'] times = numpy.arange(0, 12, 0.05) ypred = clf.predict_survival_function(X,times) # print(ypred) # print(len(times)) #240個點 # print(len(X))#100家公司 # # print(type(ypred)) # print(type(df1)) # print(len(ypred)) ''' [112 rows x 100 columns] <class 'pandas.core.frame.DataFrame'> 112 ''' rst1 =ypred.iloc[:,1:2] rst2 =ypred.iloc[:,19:20] # rst1 =ypred.ix[19] # print(rst1) # print(len(ypred.columns)) print(ypred.columns) print(ypred.index) # print(X.index) dict1 = {} for i in list(X.index): # print(i) # print(df.columns) # print(df.loc[i,"company_name"]) dict1[i] = df.loc[i,"company_name"] ypred.rename(columns = dict1,inplace = True) # ypred['survival_monthes'] = ypred.index print(ypred.columns) print(ypred['一億貴金屬如皋有限公司']) print(ypred.iloc[0:3,:]) kk = ypred.as_matrix(columns = None).T index=list(dict1.values()) print(index) columns = list(ypred.index) print(columns) bb = pd.DataFrame(kk,index=ypred.columns,columns = list(ypred.index)) bb.insert(0,'company_name',bb.index) # bb['company_name'] = bb.index print(len(bb)) bb.index = range(0,len(bb)) print(bb) # print(bb.iloc[0:3,:]) # print(bb.columns) # stk_close_df = ypred.pivot(index='d_day', values='close', columns='stk_code') # print(ypred.index) # x1 = list(rst1.index) # x2 = list(rst2.index) # # #plot物件裡面可以是list,也可以是series; # plt.xlim(1.5, 3) # plt.ylim(0.8, 1) # plt.plot(x1,rst1,'r',x2,rst2,'g') # # rst2.plot() # # # plt.show()