如何过滤 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 吗?
我有一个数据表,
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 吗?