![](/img/trans.png)
[英]Python/Pandas - Remove the first row with Unnamed: 0,Unnamed: 1,Unnamed: 2,Unnamed: 3,Unnamed: 4,Unnamed: 5,Unnamed: 6,Unnamed: 7
[英]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.