[英]Pandas - Delete Rows with only NaN values
我有一個包含許多 NaN 值的 DataFrame。 我想刪除包含太多 NaN 值的行; 特別是:7個或更多。
我嘗試以多種方式使用dropna函數,但很明顯它會貪婪地刪除包含任何NaN 值的列或行。
這個問題( Slice Pandas DataFrame by Row )告訴我,如果我可以編譯一個包含太多 NaN 值的行列表,我可以用一個簡單的方法將它們全部刪除
df.drop(rows)
我知道我可以使用count函數計算非空值,我可以將它們從總數中減去並以這種方式獲得 NaN 計數(是否有直接的方法來計算連續的 NaN 值?)。 但即便如此,我還是不確定如何編寫一個逐行遍歷 DataFrame 的循環。
這是我認為正確的一些偽代碼:
### LOOP FOR ADDRESSING EACH row:
m = total - row.count()
if (m > 7):
df.drop(row)
我還是 Pandas 的新手,所以我對解決這個問題的其他方法非常開放; 無論它們是更簡單還是更復雜。
df.dropna的可選 thresh 參數允許您為其提供最小數量的非 NA 值以保留該行。
df.dropna(thresh=df.shape[1]-7)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.