簡體   English   中英

根據條件刪除Panadas數據框的行

[英]Dropping rows of panadas dataframe based on conditional

我肯定這已經被問過了,但是我不能以這樣的方式來表達,即我發現了類似的問題。 我想做的是刪除數據框的行,其中具有相同項目名稱且所有值均為0的行都將被刪除。

例如。 我的一列是“商品名”,另一列是“值”。 “項目名稱”可能會重復很多次。 我想檢查每個“商品名稱”,如果所有其他相同名稱的商品的值都為0,則刪除這些行

我知道這應該很簡單,但是我無法理解。

為了更清楚一點,在這里

    itemname value
0      a       0
1      b       100
2      c       0
3      a       0
4      b       75
5      c       90

由於所有項目的值為0,因此應將其刪除。

    itemname value
1      b       100
2      c       0
3      b       75
4      c       90

希望有道理。 我檢查是否有人問過類似問題並且在這種情況下找不到任何東西。

采用:

df = df[df.groupby('itemname')['value'].transform('any')]
print (df)
  itemname  value
1        b    100
2        c      0
4        b     75
5        c     90

使用isin

df[df.itemname.isin(df.loc[df.value!=0,'itemname'])]
Out[543]: 
  itemname  value
1        b    100
2        c      0
4        b     75
5        c     90

暫無
暫無

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

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