簡體   English   中英

如果多列包含特定值,則刪除 pandas dataframe 中的一行

[英]Remove a row in pandas dataframe if multiple columns contains specific value

我試圖尋找這個問題的答案,但沒有找到任何適合我的東西。 我想刪除某些列包含特定值的行。 就我而言,我想刪除該行中以“user”開頭的每一列都包含值“pass”的行。 例如,如果我有以下 dataframe:

idx   start   end  user1   user2 
0     1       3    pass     pass   
1     4       5   burger   burger 
2     6       7   nuggets    cola 
3     10     15     pass    burger

我想刪除第 0 行,但不是第 3 行,因為只有一列包含值“pass”。 將不勝感激任何幫助!

更新:用戶列的名稱和數量可能會增加,例如可能有 user1、user2、user3 等。

嘗試這個:

df = df[~df.filter(like='user').apply(set, axis=1).eq({'pass'})]

您可以使用條件對 DataFrame 進行切片。

df[(df['user1'] != 'pass') & (df['user2'] != 'pass')]

如果你想讓它成為新的df,只需使用:

df = df[(df['user1'] != 'pass') & (df['user2'] != 'pass')]
df = df.drop((df.loc[(df['user1'] == 'pass') && df['user2'] == 'pass']).index)
x = np.array([[0,1,2], [3,2,5], [6,2,9], ['pass', 'pass', 1], [1, 2, 'pass']])

df = pd.DataFrame(x, columns=['one', 'two', 'three'])
display(df)

在此處輸入圖像描述

df[(df['one'] != 'pass') & (df['two'] != 'pass')]

在此處輸入圖像描述

如您所見,您可以在 Pandas 中為您的索引傳遞多個條件。

暫無
暫無

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

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