我有類似于這個的資料框:
id name val1_rain val2_tik val3_bon val4_tig ...
0 2349 Rivi 0.11 0.34 0.78 0.21
1 3397 Mani NaN NaN NaN NaN
2 0835 Pigi 0.34 NaN 0.32 NaN
3 5093 Tari 0.65 0.12 0.34 2.45
4 2340 Yoti NaN NaN NaN NaN
我想洗掉名稱列([:,2:])之后的所有列的所有空值的任何行。所以結果輸出看起來像這樣:
id name val1_rain val2_tik val3_bon val4_tig ...
0 2349 Rivi 0.11 0.34 0.78 0.21
2 0835 Pigi 0.34 NaN 0.32 NaN
3 5093 Tari 0.65 0.12 0.34 2.45
我試圖做這樣的事情:
df[~df.iloc[:,2:].isnull()]
但這引發了一個錯誤:
ValueError:無法從重復的軸重新索引
首先,我不確定為什么這個錯誤是關于重復軸的。
然后,我想找到一種方法,讓我只能在第二列之后的任何列中擁有任何值的行。
我沒有發現任何類似的問題。
uj5u.com熱心網友回復:
DataFrame.notna您可以使用and過濾第二列后是否存在至少一個非缺失值DataFrame.any:
df = df[df.iloc[:,2:].notna().any(axis=1)]
print (df)
id name val1_rain val2_tik val3_bon val4_tig
0 2349 Rivi 0.11 0.34 0.78 0.21
2 835 Pigi 0.34 NaN 0.32 NaN
3 5093 Tari 0.65 0.12 0.34 2.45
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466655.html
