好人,还在学习python。现在我有一个非常大的数据框,大约有一百万行,但是我要删除某些列位置缺少值的行。我的意思是找到某些列中缺少值的行后,我应该能够删除整行。查看示例数据框:
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)
pandas.DataFrame.mask
mask
在条件满足的任何地方使数据框为空True
dropna
与subset
参数一起使用这不是使用replace
zipa和jezrael提到的方法。与其他方法相比,使用此方法没有任何优势。我只是喜欢使用mask
。它还为社区展示了另一种完成任务的方法。
df.mask(df.eq('')).dropna(subset=['C', 'D', 'E', 'F'])
A B C D E F
0 NW Tom 20 20 20 20
2 UK krish 19 19 19 19
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句