如何刪除在該行的任何列中使用關鍵字的整行?我有250個這樣的行和28列,我想刪除所有具有「收入」的行作爲數據框中的任何列中的關鍵字符串使用熊貓如何使用Pandas中的列中的關鍵字刪除行
0
A
回答
2
例如說你想放棄,在一列
In [5]: import pandas as pd
In [7]: data = [['a', 'b'], ['a', 'c'], ['c', 'd']]
df = pd.DataFrame(data, columns=['col1', 'col2'])
In [9]: df
Out[9]:
col1 col2
0 a b
1 a c
2 c d
In [10]: df.loc[~(df == 'c').sum(axis=1).astype(bool)]
Out[10]:
col1 col2
0 a b
這個問題比較不同的解決方案有「c」的任何行。我首先創建一個大型測試數據集:
In [11]: data = [['a', 'b'], ['a', 'c'], ['c', 'd']]*10000
df = pd.DataFrame(data, columns=['col1', 'col2'])
這裏是一個更新的解決方案,我認爲最好到目前爲止:
In [6]: %timeit df.loc[~(df == 'c').any(axis=1)]
100 loops, best of 3: 3.85 ms per loop
這是我原來的解決方案:
In [13]: %timeit df.loc[~(df == 'c').sum(axis=1).astype(bool)]
100 loops, best of 3: 3.92 ms per loop
這裏是從其他解決方案的比較:
In [14]: %timeit df[df.applymap(lambda x: False if 'c' in str(x) else True)].dropna()
10 loops, best of 3: 43 ms per loop
In [5]: %timeit df[~df.apply(lambda series: series.str.contains('c')).any(axis=1)]
10 loops, best of 3: 60.7 ms per loop
雖然原來的問題比較簡單,但它也說明lambda可能非常慢。多次調用函數的開銷很大,例如數據框中有很多行。處理大型數據幀時避免使用它們通常是值得的。
0
假設您在df中沒有其他NA值,這將工作代「刪除」與「收入」
df[df.applymap(lambda x: False if 'DELETE' in str(x) else True)].dropna()
0
您可以使用apply
和lambda表達式來檢查每列中的目標詞。然後使用any(axis=1)
找到包含該單詞的任何行。最後,使用帶有tilda的布爾索引(~
)來查找收入不在該行中的所有行。
df = pd.DataFrame({'A': ['a', 'income', 'c'], 'B': ['a', 'b', 'income'], 'C': ['a', 'b', 'c']})
>>> df
A B C
0 a a a
1 income b b
2 c income c
# A check for which cells contain the target word.
>>> df.apply(lambda series: series.str.contains('income'))
A B C
0 False False False
1 True False False
2 False True False
# Remove the offending rows.
>>> df[~df.apply(lambda series: series.str.contains('income')).any(axis=1)]
A B C
0 a a a
相關問題
- 1. 刪除列表中列值的Pandas中的DataFrame行
- 2. 如何使用非鍵列從Cassandra列族中刪除行?
- 3. 如何刪除使用保留字/關鍵字創建的SQL中的表?
- 4. 如何使用方法鏈從pandas DataFrame中刪除行?
- 5. 如何刪除Pandas中列中特殊字符之前的部分字符串?
- 6. 使用List Comprehension(Pandas)從DataFrame列表中刪除DataFrame的列
- 7. 刪除表中的一行,如果它不包含關鍵字
- 8. 我們如何發送刪除行動中不是關鍵字
- 9. 如何使用Pandas刪除數字中的2個小數點中的1個
- 10. 如何刪除列表中的多個字典中的鍵python
- 11. 如何從Pandas中的數據框中刪除/省略count列?
- 12. 如何從pandas DataFrame中刪除列名稱行?
- 13. 如何從Pandas數據框中刪除行列表?
- 14. 刪除PANDAS中的第二行標題
- 15. 如何使用sed刪除plist中的關鍵屬性?
- 16. 列表中的字符串項目:如何刪除某些關鍵字?
- 17. 使用數組刪除關鍵字C++
- 18. 如何刪除Haskell(GHC)中的「if ... then ... else ...」關鍵字?
- 19. 如何刪除一個在mysql中關鍵字後面的表?
- 20. 如何刪除python數組中的數組關鍵字?
- 21. 如何刪除一個關鍵字典
- 22. 如何刪除關鍵字段
- 23. Python Pandas刪除包含列表中的值的行
- 24. 如何刪除memcached中的一系列鍵(使用Dalli + RoR)
- 25. JAVA從關鍵字的.txt文件中刪除一行
- 26. 無法刪除文本中包含某些關鍵字的行
- 27. 從文件中刪除包含關鍵字的行
- 28. 如何從django中的model中刪除關鍵字QuerySet中的模型
- 29. 如何在使用Python中的特定關鍵字的行後刪除後續行
- 30. 刪除兩個Pandas系列中包含零的整行
謝謝,我正在審查和標記你的答案正確,我忘記了早些時候。再次感謝。 –