小编bwk*_*bwk的帖子

使用knitr时如何打印到控制台?

我正在尝试打印到控制台(或输出窗口)以进行调试.例如:

\documentclass{article}

\begin{document}

<<foo>>=
print(getwd())
message(getwd())
message("ERROR:")
cat(getwd(), file=stderr())
not_a_command() # Does not throw an error?
stop("Why doesn't this throw an error?")
@


\end{document}
Run Code Online (Sandbox Code Playgroud)

我在输出PDF中得到了结果,但我的问题是我有一个未完成的脚本(所以没有输出PDF来检查),我试图理解为什么.如果编织未成功完成,似乎也没有日志文件输出.

我使用的是knitr 1.13和Rstudio 0.99.896.

编辑:如果我改为Sweave,上面的代码将正确输出(并打破),这使我认为这是一个knitr问题.

r rstudio knitr

11
推荐指数
1
解决办法
1642
查看次数

如何从 Pandas GroupBy 对象中获取分组列的名称?

假设我有以下数据框:

df = pd.DataFrame(dict(Foo=['A', 'A', 'B', 'B'], Bar=[1, 2, 3, 4]))
Run Code Online (Sandbox Code Playgroud)

IE:

   Bar Foo
0    1   A
1    2   A
2    3   B
3    4   B
Run Code Online (Sandbox Code Playgroud)

然后我创建一个 pandas.GroupBy 对象:

g = df.groupby('Foo')
Run Code Online (Sandbox Code Playgroud)

我如何从 中获取按最初名为 的列分组的g事实?gFoo

如果我这样做g.groups我会得到:

{'A': Int64Index([0, 1], dtype='int64'),
 'B': Int64Index([2, 3], dtype='int64')}
Run Code Online (Sandbox Code Playgroud)

这告诉我该列采用的Foo(“A”和“B”),但不是原始列名称。

现在,我可以做这样的事情:

g.first().index.name
Run Code Online (Sandbox Code Playgroud)

g但奇怪的是其中没有包含组名的属性,所以我觉得我一定错过了一些东西。特别是,如果g按多列分组,则上述方法不起作用:

df = pd.DataFrame(dict(Foo=['A', 'A', 'B', 'B'], Baz=['C', 'D', 'C', 'D'], Bar=[1, 2, 3, 4]))
g = df.groupby(['Foo', 'Baz'])
g.first().index.name # …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

2
推荐指数
1
解决办法
2170
查看次数

标签 统计

knitr ×1

pandas ×1

pandas-groupby ×1

python ×1

r ×1

rstudio ×1