python - 如果超过 3 个连续的 NaN,则删除列
问题描述
我正在尝试删除具有超过 3 个或 k 个连续 NaN 的列。熊猫新手。任何帮助表示赞赏。
数据看起来像
200 2000 7632
123 NaN 1232
98 NaN 12324
4231 NaN 673
87 76 1000
解决方案
你可以这样做:
df=pd.DataFrame()
df['col1']=[np.nan,1,2,np.nan,3,np.nan,np.nan]
df['col2']=[np.nan,np.nan,np.nan,np.nan,1,2,3]
df['col3']=[1,2,3,4,np.nan,np.nan,np.nan]
print(df)
col1 col2 col3
0 NaN NaN 1.0
1 1.0 NaN 2.0
2 2.0 NaN 3.0
3 NaN NaN 4.0
4 3.0 1.0 NaN
5 NaN 2.0 NaN
6 NaN 3.0 NaN
df_filtered=df.loc[:,(df.notna().cumsum().shift().apply(lambda x: x.value_counts()).fillna(0)<3).all()]
print(df_filtered)
col1
0 NaN
1 1.0
2 2.0
3 NaN
4 3.0
5 NaN
6 NaN
注意:如果它有 3 个或更多,这将消除,要从 4 中消除,您必须将 3 替换为 4
推荐阅读
- c - 测试是否设置了所有高位
- javascript - 有没有办法让 Node.JS 和 V8 自动矢量化简单循环?
- elasticsearch - Elasticsearch:使用过滤别名的替代方法
- laravel - 如何在 laravel 中使用 spatie 包裁剪图像
- r - 从R中向量中不同长度的字符串中提取字符值
- javascript - 拦截 XMLHttpRequest 并发送 Promise
- vb.net - 在 VB.Net 中设置光标位置
- xcode-ui-testing - 如何为 XCUITest (Xcode 11.7) 中的每个测试卸载和安装应用程序
- swiftui - SwiftUI - 子类视图模型不会触发视图刷新
- javascript - 如何在不预编译的情况下导入@material/mwc-button?