Python中如何删除datatable内包含任意NA值的行
Python datatable 移除含NA值行的实现方法
你持有的datatable数据表结构如下:
# A B B_lag_1 B_lag_2 B_lag_3 B_lag_4 #0 0 −0.342855 NA NA NA NA #1 0 0.0706784 −0.342855 NA NA NA #2 0 0.0470259 0.0706784 −0.342855 NA NA #3 0 −0.0522357 0.0470259 0.0706784 −0.342855 NA #4 0 −0.610938 −0.0522357 0.0470259 0.0706784 −0.342855 #5 1 −2.62617 NA NA NA NA #6 1 0.550128 −2.62617 NA NA NA #7 1 0.538717 0.550128 −2.62617 NA NA #8 1 −0.487166 0.538717 0.550128 −2.62617 NA #9 1 0.996788 −0.487166 0.538717 0.550128 −2.62617
要移除所有包含任意NA值的行,直接调用库内置的dropna()方法即可。
针对datatable库的实现
如果使用的是官方datatable库,代码如下:
# 假设原始数据表赋值给变量dt_df dt_df_clean = dt_df.dropna()
- 该方法默认行为就是删除任意列存在NA值的行,执行后只会保留原表中索引为4、9的两行完整数据,完全匹配你的需求。
- 如果需要指定仅根据部分列判断是否删除,可以传入
subset参数指定列名,例如仅检查B_lag_4列是否存在NA:dt_df.dropna(subset=['B_lag_4']),运行结果和当前需求一致。
针对pandas DataFrame的实现
如果你实际使用的是pandas库的DataFrame,语法几乎完全相同:
# 假设原始数据表赋值给变量pd_df pd_df_clean = pd_df.dropna()
说明:两个库的
dropna()方法都可以自动识别表中的NA/NaN缺失值,不需要提前做额外的类型转换处理。
内容的提问来源于stack exchange,提问作者Shawn Brar
相关产品推荐
相关产品推荐

