簡體   English   中英

pandas dropna() 僅當在第一行 NaN 值中時

[英]pandas dropna() only if in first row NaN value

我有一個如下所示的數據框

df = [[1,'NaN',3],[4,5,'Nan'],[7,8,9]]
df = pd.DataFrame(df)

並且我想刪除第一行中具有 NaN 值的所有列。

所以輸出應該是:

df = [[1,3],[4,'Nan'],[7,9]]
df = pd.DataFrame(df)

因此,在這種情況下,由於第一個元素是 NaN 值,因此只刪除了第二列。 因此, dropna() 是基於一個條件......知道如何處理這個嗎? 謝謝!

如果值是np.nan而不是字符串NaN否則替換它們),您可以執行以下操作:

輸入:

df = [[1,np.nan,3],[4,5,np.nan],[7,8,9]]
df = pd.DataFrame(df)

解決方案:

df.loc[:,df.iloc[0].notna()] #assign back to your desired variable

   0    2
0  1  3.0
1  4  NaN
2  7  9.0

暫無
暫無

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

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