簡體   English   中英

根據連續行是否相似刪除行 - Python

[英]delete rows based on if consecutive rows are similar - Python

我有這個數據框,想根據這組規則刪除行。 如果連續行具有相同的 'area' 和 'local' 值並且 'group_name' 不同,那么我想刪除第一行:

df = pd.DataFrame()
df['time']  = pd.date_range("2018-01-01", freq = "s", periods = 10)
df['area'] = [1,1,1,2,2,2,3,3,4,4]
df['local'] = [1,1,1,1,2,2,2,2,2,2]
df['group_name'] = [1,1,2,2,2,3,3,3,4,4] 
df['value'] = [1,4,3,2,5,6,2,1,7,8]  

在此處輸入圖像描述

上圖顯示了表格,我想刪除第 1 行和第 4 行。

我嘗試在區域、本地和組名的子集上使用duplicated() ,但這並不能保留我需要的所有唯一的

請幫幫我!

你可以通過編寫一些這樣的 if 語句來做到這一點:

for i in range(len(df)-1):
    if df.loc[i]['local'] == df.loc[i+1]['local']:
        if df.loc[i]['area'] == df.loc[i+1]['area']:
            if df.loc[i]['group_name'] != df.loc[i+1]['group_name']:
                df.drop(i, inplace=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM