Python 3.x 熊猫:删除缺少数据的行

Python 3.x 熊猫:删除缺少数据的行,python-3.x,pandas,Python 3.x,Pandas,我正在使用以下代码删除pandas中缺少数据的一些行: df = df.replace(r'^\s+$', np.nan, regex=True) df = df.replace(r'^\t+$', np.nan, regex=True) df = df.dropna() 但是,数据框中仍有一些单元格看起来是空的。为什么会这样?有什么方法可以去掉带有空/空白单元格的行?谢谢 您可以使用: df = df.replace('', np.nan) 如果希望简化代码,可以通过|连接正则表达式,并使

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

df = df.replace(r'^\s+$', np.nan, regex=True)
df = df.replace(r'^\t+$', np.nan, regex=True)
df = df.dropna()
但是,数据框中仍有一些单元格看起来是空的。为什么会这样?有什么方法可以去掉带有空/空白单元格的行?谢谢

您可以使用:

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
您可以使用:

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

根据您的熊猫版本,您可以执行以下操作:

DataFrame.dropna(axis=0,how='any',thresh=None,subset=None, inplace=False)轴:{0或'index',1或'columns',默认为0

确定是否删除包含缺少值的行或列

0或“索引”:删除包含缺少值的行。 1或“列”:删除包含缺少值的列

Deprecated since version 0.23.0:: Pass tuple or list to drop on multiple
斧头

因此,现在我们要删除具有空值的行

df = df.dropna(axis=0)

根据您的熊猫版本,您可以执行以下操作:

DataFrame.dropna(axis=0,how='any',thresh=None,subset=None, inplace=False)轴:{0或'index',1或'columns',默认为0

确定是否删除包含缺少值的行或列

0或“索引”:删除包含缺少值的行。 1或“列”:删除包含缺少值的列

Deprecated since version 0.23.0:: Pass tuple or list to drop on multiple
斧头

因此,现在我们要删除具有空值的行

df = df.dropna(axis=0)

应该可以工作

你能给我们看看数据帧的样本吗,这样我们就可以重现关于
df=df.replace(''',np.nan)
的问题吗?就像@jezrael所说的,试着把
df=df.replace(''',np.nan,regex=True)
添加到你的
dropna
之前code@jezrael:add df=df.replace(“”,np.nan)起作用。谢谢你能给我们看一下数据帧的样本吗?这样我们就可以重现关于
df=df.replace(''',np.nan)
的问题吗?就像@jezrael说的,试着把
df=df.replace(''',np.nan,regex=True)
添加到你的
dropna
之前code@jezrael:add df=df.replace(“”,np.nan)起作用。谢谢可能重复的