簡體   English   中英

使用 pandas 從未命名或空白的列中刪除行

[英]Delete row from a column that is unnamed or blank using pandas

我有一個數據框 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)

但是,該操作沒有執行,我沒有得到想要的結果。 我正在積極研究這個。 任何建議表示贊賞

使用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

無論如何,您有一排空間。 出路是查詢 df 以獲取此類行並將其過濾掉。 空格,表示一個數據類型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

運行此命令,它將刪除包含任何空值的所有列

data = data.dropna()

暫無
暫無

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

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