python - 熊猫 dropna() 仅当在第一行 NaN 值时
问题描述
我有一个如下的数据框
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() 是基于一个条件..知道如何处理这个吗?谢谢!
解决方案
如果值是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
推荐阅读
- ios - 导航栏按钮项不可见但可操作的 iOS Swift
- angular - 仅在某些构建中 Angular 应用程序中的语法错误
- python - Is there an opposite version of scipy find_peaks?
- asp.net-core - ASP.NET Core 3.1 WebApp - use Azure HttpsOnly or use HTTPS Redirection Middleware
- php - 如何修复 WordPress 错误 - 网站上的严重错误
- vue.js - 使用 Nuxt 与 Firestore 和 GOOGLE_APPLICATION_CREDENTIALS 进行识别
- reactjs - 如何实际使用上下文?
- android - Flutter: RenderBox was not laid out when working with ListView
- h2 - 最新的 H2 (1.4.200) 数据库是否仍然存在安全漏洞
- api - 如何获取用于制作 chrome 扩展的网站图标?