如何使用pandas删除数据框中具有空列的行

11

我需要删除DataFrame中没有值的列和整行。

Name   place    phonenum

mike   china     12344
       ireland    897654
suzzi  japan      09876
chang  china      897654
       Australia  897654
       india      876543

所需输出结果应为

Name   place    phonenum

mike   china     12344
suzzi  japan      09876
chang  china      897654

我使用了df1=df[df.Name == ''],我得到了输出结果。

  Name   place    phonenum
请帮助我

print(df.index) 是什么? - jezrael
3个回答

10
如果{{Name}}是列:
print (df.columns)
Index(['Name', 'place', 'phonenum'], dtype='object')

如果缺失值是空字符串,需要将==更改为!=以表示不相等:

print (df)
    Name      place  phonenum
0   mike      china     12344
1           ireland    897654
2  suzzi      japan      9876
3  chang      china    897654
4         Australia    897654
5             india    876543

df1 = df[df.Name != '']
print (df1)
    Name  place  phonenum
0   mike  china     12344
2  suzzi  japan      9876
3  chang  china    897654

如果第一列中有NaN值,则使用dropna并指定要检查的列:
print (df)
    Name      place  phonenum
0   mike      china     12344
1    NaN    ireland    897654
2  suzzi      japan      9876
3  chang      china    897654
4    NaN  Australia    897654
5    NaN      india    876543

df1 = df.dropna(subset=['Name'])
print (df1)
    Name  place  phonenum
0   mike  china     12344
2  suzzi  japan      9876
3  chang  china    897654

我使用了它,但是带有空列的行没有被删除。 - tiru
2
好的,df1 = df.dropna(subset=['Name']) 怎么样? - jezrael

4

在我的情况下,我有一堆包含日期、字符串以及一个值列(也称为“Value”)的字段。我尝试了上面所有的建议,但实际上起作用的是删除“Value”字段中的NA记录。

df = df.dropna(subset=['Value'])


3

DataFrame的dropna()方法会在行中任何值缺失时删除整个行。

df1 = df.dropna()

通过使用这个方法,所有空列的整行都会被删除,但我只想删除名字列为空的行,然后将其删除。 - tiru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接