首页 > 解决方案 > 熊猫:删除缺少数据的行

问题描述

我正在使用以下代码删除熊猫中缺少数据的一些行:

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

但是,我仍然有一些数据框中的单元格看起来是空白/空的。为什么会这样?有什么办法可以摆脱这种空/空白单元格的行吗?谢谢!

标签: python-3.xpandas

解决方案


您可以使用:

df = df.replace('', np.nan)

如果想简化您的代码,可以加入正则表达式|并用于空白空间^$

df = pd.DataFrame({'A':list('abcdef'),
                   'B':['',5,4,5,5,4],
                   'C':['','  ','   ',4,2,3],
                   'D':[1,3,5,7,'       ',0],
                   'E':[5,3,6,9,2,4],
                   'F':list('aaabbb')})

df = df.replace(r'^\s+$|^\t+$|^$', np.nan, regex=True)
print (df)
   A    B    C    D  E  F
0  a  NaN  NaN  1.0  5  a
1  b  5.0  NaN  3.0  3  a
2  c  4.0  NaN  5.0  6  a
3  d  5.0  4.0  7.0  9  b
4  e  5.0  2.0  NaN  2  b
5  f  4.0  3.0  0.0  4  b

推荐阅读