python - 如何从 org-mode 的源块返回多个 Latex 或 org 表?
问题描述
我的具体问题是,很多时候我在 org-mode 中使用 python 源块对数据帧的许多变量运行相同的统计分析,然后将它们呈现为乳胶表。手动进行每个分析变得非常乏味,所以我想使用 for 循环:
#+begin_src python :exports results :session :results latex
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3, 4, 5],
'b': [9, 8, 7, 6, 5]})
for var in df.columns:
df[var].value_counts().to_latex()
#+end_src
问题是它只返回源块返回的最后一个值(for循环的最后一次运行。
#+Results:
#+BEGIN_LaTeX
\begin{tabular}{lr}
\toprule
{} & b \\
\midrule
7 & 1 \\
6 & 1 \\
5 & 1 \\
9 & 1 \\
8 & 1 \\
\bottomrule
\end{tabular}
#+END_LaTeX
那么有没有办法从一个源代码块中实际获取多个乳胶或组织表?
编辑:考虑@dschwilk 的答案,我需要返回多个#+Results 块(每个latex 或org 表一个),以便我可以在它们之间添加文本描述。如:
Description for table 1
#+RESULTS:
#+BEGIN_LaTeX
\begin{tabular}{lr}
\toprule
{} & a \\
\midrule
5 & 1 \\
4 & 1 \\
3 & 1 \\
2 & 1 \\
1 & 1 \\
\bottomrule
\end{tabular}
#+END_LaTeX
Description for table 2
#+RESULTS:
\begin{tabular}{lr}
\toprule
{} & b \\
\midrule
7 & 1 \\
6 & 1 \\
5 & 1 \\
9 & 1 \\
8 & 1 \\
\bottomrule
\end{tabular}
#+END_LaTeX
解决方案
您可以创建一个列表并在每个循环中将乳胶输出附加到它:
latex_list=[]
for var in df.columns:
latex_list.append(df[var].value_counts().to_latex())
也许像这样打印:
for e in latex_list:
print(e)
推荐阅读
- python - 如何序列化具有多个深度为 1 的自引用字段的 django 模型
- f# - 平均 f# 中的 c# 对象列表,我的语法有什么问题
- javascript - 这个臭名昭著的网站会阻止 Chrome 开发工具吗?
- quicksort - 快速排序 - 空间复杂度 - 为什么它是 O(logN) 而不是 O(N)?
- mysql - 带有二级子排序的 OrderBy
- javascript - 从命令行暂停 Nodejs 服务器的执行
- ansible - 错误!在 Ansible 控制器上找不到 vars 文件 vars
- hive - 合并两列但在配置单元中具有不同的结构
- c# - C# - 生成这些真正的键值对的语法
- angularjs - 显示重复行的角度 ui-grid 分组