Pandas簡單資料處理

2021-10-19 07:33:22 字數 1772 閱讀 6220

對乙個人連線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()

print

(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()

print

(row)

'''列印apmac這一列

print

(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...