相当于 %like% 的 python 的 data.table 是什么?
简短示例:
dt_foo_bar = dt.Frame({"n": [1, 3], "s": ["foo", "bar"]})
dt_foo_bar[re.match("foo",f.s),:] #works to filter by "foo"
Run Code Online (Sandbox Code Playgroud)
我原以为这样的事情会起作用:
dt_foo_bar[re.match("fo",f.s),:]
Run Code Online (Sandbox Code Playgroud)
但它返回“预期的字符串或类似字节的对象”。我很想开始在 Python 中使用新的 data.tables 包,就像我在 R 中使用它的方式一样,但我更多地处理文本数据而不是数字数据。
提前致谢。
python中的数据表包(https://github.com/h2oai/datatable/)可以计算列中唯一值的数量,有没有办法用这个包删除重复值,或者我必须使用慢速的pandas包裹?
我创建了一个数据表框架如下,
DT_EX = dt.Frame({'cid':[1,2,1,2,3,2,4,2,4,5],
'cust_life_cycle':['Lead','Active','Lead','Active','Inactive','Lead','Active','Lead','Inactive','Lead']})
Run Code Online (Sandbox Code Playgroud)
在这里,我有三个独特的客户生命周期,这些计数中的每一个都被发现为
DT_EX[:, count(), by(f.cust_life_cycle)]
Run Code Online (Sandbox Code Playgroud)
连同它,我有五个客户 ID,这些计数如下
DT_EX[:, count(), by(f.cid)]
Run Code Online (Sandbox Code Playgroud)
现在我想看看每个客户生命周期中存在多少个唯一客户 ID,
DT_EX[:, {'unique_cids':dt.unique(f.cid)}, by(f.cust_life_cycle)]
Run Code Online (Sandbox Code Playgroud)
它应该显示为潜在客户有 3 个唯一客户 ID,例如 (1,2,5),活动用户有 2 个唯一客户 ID (2,4),依此类推。
我无法按预期得到它,你能告诉我如何修复它吗?
仅供参考:我试图在 R data.table 框架上重现相同的内容,它的工作原理。
DT_EX[, uniqueN(cid), by=cust_life_cycle]
Run Code Online (Sandbox Code Playgroud) 在下面的代码片段中,我有一个模板函数foo(),它将指向某个对象的指针作为模板参数.
class P {};
class Q : public P {};
P p;
Q q;
template <P*> void foo() {}
void test() {
foo<&p>();
foo<&q>();
}
Run Code Online (Sandbox Code Playgroud)
根据文档,这应该工作提供
对于指向对象的指针,模板参数必须指定具有静态存储持续时间和链接(内部或外部)的完整对象的地址,或者计算为适当的空指针或std :: nullptr_t值的常量表达式.
由于有问题的对象必须具有静态存储持续时间,因此我将其全局定义.但是,编译器抱怨第二次调用foo():
test.cc:66:7: error: no matching function for call to 'foo'
foo<&q>();
^~~~~~~
test.cc:62:26: note: candidate template ignored: invalid
explicitly-specified argument for template parameter 'p'
template <P* p> void foo() {}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会这样,为什么禁止这样的使用?