第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何判斷dataframe中任意連續(xù)行的差異大于0.1?

如何判斷dataframe中任意連續(xù)行的差異大于0.1?

藍(lán)山帝景 2023-09-12 17:49:32
我的 csv 中的數(shù)據(jù)如下所示:staff_id,clock_time,device_id,latitude,longitude1001,2020/9/14 4:43:00,d_1,24.59652556,118.08246441001,2020/9/14 8:34:40,d_1,24.59732974,118.08596311001,2020/9/14 3:33:34,d_1,24.73208312,118.09571971001,2020/9/14 4:17:29,d_1,24.59222786,118.09552751001,2020/9/20 5:30:56,d_1,24.59689407,118.28638061001,2020/9/20 7:26:05,d_1,24.58237852,118.2858955我想找到連續(xù)兩行的經(jīng)度或緯度之差大于0.1的任何行,然后將連續(xù)兩行的行索引放入列表中。從我的數(shù)據(jù)來看,第2行(24.59732974)、第3行(24.73208312)、第4行(24.59222786)的緯度差大于0.1,第4行(118.0955275)、第5行(118.2863806)的經(jīng)度差大于0.1。我想將第2,3,4行的索引放入一個(gè)列表中l(wèi)atitude_diff_list,并將第4,5行的索引放入另一個(gè)列表中l(wèi)ongitude_diff_list,我該怎么辦?
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

您需要使用 , 的組合diff()來檢查與下一行或上一行的絕對差是否大于 0.1,然后獲取這些行的索引(我知道您實(shí)際上想要索引,而不是描述性行號,即從 0 開始的索引)。您可以執(zhí)行此操作的一種方法是:

latitude_diff_list = df.index[(abs(df['latitude'].diff()) > 0.1) | (abs(df['latitude'].diff(-1)) > 0.1)].tolist()
longitude_diff_list = df.index[(abs(df['longitude'].diff()) > 0.1) | (abs(df['longitude'].diff(-1)) > 0.1)].tolist()

如果您希望行號從 1 開始(例如[i+1 for i in latitude_diff_list]) ,則可以將其偏移 +1


查看完整回答
反對 回復(fù) 2023-09-12
?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

我相信你需要原始值和移位值之間的絕對差異,比較DataFrame.gt更大:

m1 = df[['latitude','longitude']].diff().abs().gt(0.1)

m2 = df[['latitude','longitude']].shift().diff().abs().gt(0.1)


m = m1 | m2

print (m)

? ?latitude? longitude

0? ? ?False? ? ? False

1? ? ?False? ? ? False

2? ? ? True? ? ? False

3? ? ? True? ? ? False

4? ? ? True? ? ? ?True

5? ? ?False? ? ? ?True


latitude_diff_list = df.index[m['latitude']].tolist()

print (latitude_diff_list)

[2, 3, 4]


longitude_diff_list = df.index[m['longitude']].tolist()

print (longitude_diff_list)

[4, 5]


查看完整回答
反對 回復(fù) 2023-09-12
?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

這應(yīng)該有效:


import pandas as pd


df_ex = pandas.read_csv('ex.csv', sep=',')

latitude_diff_list, longitude_diff_list = [], []

for idx,row in df_ex[1:].iterrows():

    if abs(row['latitude'] - df_ex.loc[idx-1, 'latitude']) > 0.1:

        latitude_diff_list.extend([idx-1, idx])

    if abs(row['longitude'] - df_ex.loc[idx-1, 'longitude']) > 0.1:

        longitude_diff_list.extend([idx-1, idx])


latitude_diff_list, longitude_diff_list = list(set(latitude_diff_list)), list(set(longitude_diff_list))



查看完整回答
反對 回復(fù) 2023-09-12
  • 3 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號