對乙個人連線ap的資料進行處理,來得出其大致行程
將其轉換為dataframe,二維
有列,第一列是apmac(無線ap的硬體位址),第二列是mac(登陸者使用裝置的mac位址),第三列是手機號,第四列為連線當前ap的時間,第五列為斷開當前ap的時間。
本次資料處理的目的是進行簡單聚類,比如a同學連線ap1,但是因為某些原因斷開了5分鐘(上個衛生間啥的),五分鐘後又連線了這個,這樣的就將其作為一條記錄,開始時間為最早開始時間,結束為最晚結束時間。
用到的函式# 將時間轉換成時間類
df1[
'begintime'
]= pd.
to_datetime
(df1[
'begintime'])
df1[
'endtime'
]= pd.
to_datetime
(df1[
'endtime'])
'''#遍歷每一行
for i in range(2
):row = df1.iloc[i]
.values.
tolist()
(row)
''''''
遍歷每一條資料,如果兩條臨近的記錄連線的乙個ap而且,上一條記錄的結束時間
和下一條開始時間的時間差少於15mins就當做一條記錄,讓第一條記錄的結束時間等於第二條記錄的結束時間
刪除第二條記錄,這樣將第一二條記錄合併(忽略時間差)
'''length =
len(df1)
for i in range
(length-1)
:#遍歷,
if df1.iat[i,0]
== df1.iat[i+1,
0]:##兩條記錄連線在乙個ap上
if(df1.iat[i+1,
3]-df1.iat[i,4]
).seconds/
60<15:
df1.iat[i,4]
= df1.iat[i+1,
4]df2 = df1.
drop
(labels=i+1)
for i in range
(len
(df2)):
row = df2.iloc[i]
.values.
tolist()
(row)
'''列印apmac這一列
(df1[
'apmac'])
'''#print((df1.iat[1,3]-df1.iat[0,4]).seconds/60)
#選取具體的某個引數,x行,y列
#print(df1.iat[x,y])
print frame.drop([『a』])#a為行名print frame.drop([『ohio』], axis = 1)
df.drop(『column_name』,axis=1, inplace=true)
凡是會對原陣列作出修改並返回乙個新陣列的,往往都有乙個 inplace可選引數。如果手動設定為true(預設為false),那麼原陣列直接就被替換。也就是說,採用inplace=true之後,
簡單資料處理
資料去重 uniq 2,1,2 2,1 刪除陣列的指定項 pull 1,2,3 2 1,3 陣列過濾.uniqby this.nodes,x x.belong 陣列每一項新增checked true array.map x 物件合併 例項 uniqby this.nodes,x x.belong 過...
pandas 資料處理
pandas中資料可以分為series,dataframe,panel分別表示一維至三維資料。其中在構造時,index表示行名,columns表示列名 構造方式 s pd.series data index index s pd series np random randn 5 index a b ...
pandas資料處理
dataframe.duplicated subset none,keep first 判斷dataframe中的資料是否有重複 必須一行中所有資料都重複才算重複,只能判斷行,不能判斷列 返回series dataframe.drop duplicates subset none,keep firs...