pandas在df中删除带有nan的行

时间:2018-01-25 16:22:47

标签: python python-3.x pandas dataframe

我的df包含nan

A  
nan  
nan
nan
nan
2017
2018

我尝试删除nan中的所有df行,

df = df.loc[df['A'].notnull()]

但在上述代码之后,df仍然包含列nan的{​​{1}}个值。 'A'的{​​{1}}为dtype

我想知道如何修复它。问题是我需要定义多个条件来过滤'A',而object就是其中之一。不知道为什么它不起作用。

1 个答案:

答案 0 :(得分:1)

请提供可重复的示例。因此,这有效:

import pandas as pd
import numpy as np

df = pd.DataFrame([[np.nan], [np.nan], [2017], [2018]], columns=['A'])
df = df[df['A'].notnull()]

df2 = pd.DataFrame([['nan'], ['nan'], [2017], [2018]], columns=['A'])
df2 = df2.replace('nan', np.nan)
df2 = df2[df2['A'].notnull()]

# output [df or df2]
# A
# 2017.0 
# 2018.0