我有一个如下数据框
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()是基于条件的。任何想法如何处理?谢谢!
答案 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