將連續的浮點數轉化成啞變數

2021-08-14 12:21:29 字數 975 閱讀 7756

中每行都有乙個starttime(上線時間)和offlinetime(下線時間)

備註:python 中pandas所帶的get_dummies會將整個時間作為乙個字串變數,即只能在頭和尾形成啞變數,無法在中間插入數值,為了解決這個問題所以才有了現在這篇部落格

。隨意建立兩個資料的**

data=pd.dataframe()

輔助函式,效果:contain(1,[1,20,3,1,5,10,3])  輸出 [1,0,0,1,0,0,0],即第二個引數中是否包含第乙個引數

思路 將兩個時間點中的小時變數提取出來做成區間[starttime,offlinetime],然後針對每乙個時間建立乙個啞變數

data['detla_time'] = data['starttime'].map(lambda x:str(x.hour)) +','+ data['offlinetime'].map(lambda x:str(x.hour))

data['detla_time_range'] = data['detla_time'].map(lambda x: range(int(x.split(',')[0]),int(x.split(',')[1])+1,1))

感覺內容不是很多,那寫乙個如果允許直接遊歷整個資料的方法,思路如下:

效果圖

由於字典本身的無序性,導致最後的dataframe列有點難看,可以用pd.dataframe.reindex函式進行重排。

這種方法相比於上面的方法比較容易理解,但是需要迴圈一次資料,在這個資料量普遍相當大的時代不太合適,但如果你要想對每一行創造更加複雜的特徵,那可能就不得不對資料進行迴圈了吧。

將python讀入的txt轉化成array陣列

把txt檔案裡的數字轉換成array陣列,首先得需要了解一下這兩個函式 data.strip 這個函式用來刪除data開頭和結尾指定的字串,比如 string 000012304560000 string.strip 0 print string 1230456 data.split a 0nnab...

《強制型別轉化與浮點數的儲存問題》

強制型別轉化 格式 資料型別 表示式 功能 把表示式的值強制轉化為前面所執行的資料型別。例子 int 3.3 2.2 最終值是5 float 6 最終值是6.000000 求1 1 2 1 3.1 100 include void main printf f n sum 輸出結果是 5.187378...

C語言 強制型別轉化 浮點數的儲存

include intmain void 輸出結果 sum 5.187378 k 5.567890 總結 0 郝斌c語言自學教程 浮點型的儲存 所帶來的問題 1 除號 要求被除數或者除數其中乙個是浮點型,結果才能是浮點型 2 強制型別轉化 格式 資料型別 表示式 功能 把表示式的值強制轉化為前面所執...