簡體   English   中英

如何在僅某些列等於上一行時刪除下一個熊貓數據框行

[英]How to remove next pandas dataframe row when it's equal to previous row only for some columns

我使用以下代碼創建了一個名為df的數據框:

# initialize list of lists
data = {'ID': [1,2,3,4,5,6,7],
        'feature1': [100,32,100,100,100,93,100],
        'feature2': [100,32,100,100,100,93,100],
        'feature3': [100,32,100,100,100,93,100],
        }
 
# Create DataFrame
df = pd.DataFrame(data)

數據框如下所示:

print(df)

   ID  feature1  feature2  feature3
0   1       100       100       100
1   2        32        32        32
2   3       100       100       100
3   4       100       100       100
4   5       100       100       100
5   6        93        93        93
6   7       100       100       100

我想刪除列值所在的行:

  • feature1
  • feature2
  • feature3一行完全相同。 在上面的示例中,我需要刪除3行和4行,以便生成的數據框如下所示:

在此處輸入圖像描述

Filter feature列,然后計算前一行和當前行之間的差異,並檢查所有feature列的差異是否為0

df[~df.filter(like='feature').diff().eq(0).all(1)]

   ID  feature1  feature2  feature3
0   1       100       100       100
1   2        32        32        32
2   3       100       100       100
5   6        93        93        93
6   7       100       100       100

暫無
暫無

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

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