熊猫dropna()仅在第一行中的NaN值时

时间:2020-03-18 17:59:17

标签: python pandas dataframe

我有一个如下数据框

df = [[1,'NaN',3],[4,5,'Nan'],[7,8,9]]
df = pd.DataFrame(df)

,我想删除第一行中有NaN值的所有列

所以输出应该是:

df = [[1,3],[4,'Nan'],[7,9]]
df = pd.DataFrame(df)

因此,在这种情况下,由于第一个元素是NaN值,因此仅删除了第二列。 因此,dropna()是基于条件的。任何想法如何处理?谢谢!

1 个答案:

答案 0 :(得分:2)

如果值是np.nan而不是字符串NaN否则替换它们),则可以执行以下操作:

输入:

df = [[1,np.nan,3],[4,5,np.nan],[7,8,9]]
df = pd.DataFrame(df)

解决方案:

df.loc[:,df.iloc[0].notna()] #assign back to your desired variable

   0    2
0  1  3.0
1  4  NaN
2  7  9.0