我有一個資料框 df,我想在其中使用 Pandas 從未命名或空白的列中洗掉一行。我想洗掉包含“id”的行
資料
a b c
date 21 22 23
id
aa 2 3 4
bb 1 2 3
cc 5 5 5
想要的
a b c
date 21 22 23
aa 2 3 4
bb 1 2 3
cc 5 5 5
正在做
df[df[""].str.contains("id")==False]
或者
df.drop(1)
但是,該操作沒有執行,我沒有得到想要的結果。我正在積極研究這個。任何建議表示贊賞
uj5u.com熱心網友回復:
使用dropna:
>>> df.dropna(how='all', axis=0)
a b c
date 21.0 22.0 23.0
aa 2.0 3.0 4.0
bb 1.0 2.0 3.0
cc 5.0 5.0 5.0
更新
如果第一列不是索引而是一個空名稱的真實列,也許你應該使用這個版本:
>>> df[df.loc[:, df.columns.str.len().astype(bool)].notna().any(axis=1)]
a b c
0 date 21.0 22.0 23.0
2 aa 2.0 3.0 4.0
3 bb 1.0 2.0 3.0
4 cc 5.0 5.0 5.0
或者更簡單,如果您的未命名列是第一個:
>>> df[df.iloc[:, 1:].notna().any(axis=1)]
a b c
0 date 21.0 22.0 23.0
2 aa 2.0 3.0 4.0
3 bb 1.0 2.0 3.0
4 cc 5.0 5.0 5.0
uj5u.com熱心網友回復:
無論如何,您有一排空間。出路是查詢 df 以獲取此類行并將其過濾掉。空格,表示一個 dtype object。我會
df.where((df!=' ')).dropna()
a b c
date 21.0 22.0 23.0
aa 2.0 3.0 4.0
bb 1.0 2.0 3.0
cc 5.0 5.0 5.0
uj5u.com熱心網友回復:
運行此命令,它將洗掉包含任何空值的所有列
data = data.dropna()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/342905.html
