首页 > 解决方案 > 从数据框python中的某个位置删除具有缺失值的行

问题描述

好人,还在学习 python。现在我有一个非常庞大的数据框,大约有 100 万行,但是我会做些什么来删除某些列位置缺少值的行。我的意思是在从某个列中找到缺失值的行之后,我应该能够删除整行。查看示例数据框:

import pandas as pd 

data = {'A':['NW', 'NB', 'UK', 'CAN'],'B':['Tom', 'nick', 'krish', 'jack'], 'C':[20, '', 19, ''],'D':[20, '', 19, ''],'E':[20, '', 19, ''],'F':[20, '', 19, '']} 
df = pd.DataFrame(data) 
print(df)

在这个数据框中,我想识别从 C 列到 F 列缺失值的行,然后删除整行,这意味着我必须删除第 1 行和第 3 行。我已经尝试过了,但它不起作用:

df.dropna(subset=['C','D','E','F'], how='all', inplace = True)

预期输出应该是这样的表

import pandas as pd 

data = {'A':['NW', 'UK'],'B':['Tom', 'krish'], 'C':[20, 19],'D':[20, 19 ],'E':[20,  19 ],'F':[20, 19]} 
df = pd.DataFrame(data) 
print(df)

标签: pythonpandasdataframe

解决方案


这应该这样做:

df.replace(r'^\s*$', np.nan, regex=True).dropna()

推荐阅读