如何过滤 pydatatable 列中的 NA 值?

How to filter NA values in columns of pydatatable?

我有一个数据表,

DT_EX= dt.Frame({
               'country':['a','a','a','a'],
               'id':[3,3,3,3],
               'shop':['dmart','dmart','dmart','dmart'],
               'beef':[23,None,None,None],
               'eggs':[None,33,None,None],
               'fork':[None,None,10,None],
               'veg':[None,None,None,40]})

它的输出是,

我想将它转换成一个数据表,该数据表的列中不应有 NA,如此输出所示,

您能否解释一下如何在 py-datatable 上执行此操作(删除 NA)?。 dt.isna() 在这种情况下会有帮助吗?

解决它的一种方法是 select 前三列(它们没有空值)并用剩余列的总和扩展它:link

from datatable import f, first, sum

DT_EX[:,first(f[:3]).extend(sum(f[3:]))]

    country id  shop    beef    eggs    fork    veg
▪▪▪▪    ▪▪▪▪    ▪▪▪▪    ▪▪▪▪▪▪▪▪    ▪▪▪▪▪▪▪▪    ▪▪▪▪▪▪▪▪    ▪▪▪▪▪▪▪▪
0   a   3   dmart   23  33  10  40

更新:来自另一个相关问题的更简单的解决方案:

DT_EX[:, sum(f[3:]), f[:3])]

所以我还有一个项目子组,这是一个新的 DT。

DT_EX= dt.Frame({
'country':['a','a','a','a','b','b','c','c'],
'id':[3,3,3,3,4,4,4,4],
'shop':['dmart','dmart','dmart','dmart','amzn','amzn','amzn','amzn'],
'beef':[23,None,None,None,93,None,None,None],
'eggs':[None,33,None,None,None,103,None,None],
'fork':[None,None,10,None,None,None,210,None],
'veg':[None,None,None,40,None,None,None,340]})

我已尝试在此处应用所附屏幕截图中推荐的逻辑,

在第二个代码块中,它总结了每一列(牛肉、鸡蛋、叉子、蔬菜)

并且在第三个代码块中,我对前三列进行了分组,这里它给出了正确的输出,但是它添加了重复的列,另一个观察是它用 0 填充 NA 值,可以找到关于C观察。

你还有其他的 ideas/suggestions 吗?