繁体   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