我发现data.table以下两个操作的逻辑不一致:
操作1:
df1<-data.table(a=c(1,2))
list1<-list(c(1,2), 1)
df1[,b:=list1]
#> df1
# a b
#1: 1 1,2
#2: 2 1
Run Code Online (Sandbox Code Playgroud)
操作2 :( data.table将单例列表视为提供向量)
df2<-data.table(a=c(1))
list2<-list(c(1,2))
df2[, b:=list2]
#Warning message:
#In `[.data.table`(df2, , `:=`(b, list2)) :
# Supplied 2 items to be assigned to 1 items of column 'b' (1 unused)
#> df2
a b
#1: 1 1
Run Code Online (Sandbox Code Playgroud)
我想在第二种情况下的输出是:
# a b
#1: 1 1,2
Run Code Online (Sandbox Code Playgroud)
我可以做到统一两种情况:
df1[, b:=list(list1)]
df2[, b:=list(list2)]
Run Code Online (Sandbox Code Playgroud)
这是最好的解决方案吗?data.table没有选项可以不删除单例列表吗?在我使用的第一种情况下,是否没有额外的操作性能b:=list(list1)?
在创建的ipython笔记本(jupyter)幻灯片中
ipython nbconvert presentation.ipynb --to slides --post serve
Run Code Online (Sandbox Code Playgroud)
图像质量差,因为它们似乎缩小到了页面宽度。如何增加页面宽度/在演示文稿中显示更大的图像?
我想覆盖在 ipython notebook 中为某些单元格按下 run 时会发生什么。
例如,我希望能够直接在单元格中编写 SQL 查询并定义一个处理它的函数。
似乎应该可以像ipython-notebook extensions一样做到这一点。有人知道类似的扩展吗?直接从 ipython 执行此操作的简单方法?
理想情况下,这将涉及定义自定义单元格类型,但我很乐意使用特殊标签将通常的 Python 代码与自定义 SQL 查询单元格分开。