我有一个python源代码块,可获取大熊猫数据框中的变量(列)和案例数。
最小示例:
#+begin_src python :exports none :session :results output
df = pd.DataFrame({'a': [1, 2, 3],
'b': [4, 5, 6]})
df_len_columns = len(df.columns)
df_len_cases = len(df.index)
#+end_src
我现在想做的就是在这样的内联源代码中使用这些变量的值:
变量数为src_python{df_len_columns}
,案例数为src_python{df_len_cases}
。
但这会引发以下错误:
NameError: name 'df_len_columns' is not defined
请注意,我正在使用会话参数:session
,以为它将成为同一会话的一部分并且可以正常工作。我也在网上进行了广泛搜索,但找不到针对此特定问题的解决方案(大多数问题与表的内联代码和内联代码格式有关)。
反正有实际在内联中使用这些变量吗?
答案 0 :(得分:3)
您似乎需要使用标头参数告诉内联源代码引用您的会话:
src_python[:session]{df_len_columns}
一般形式为src_<language>[<header arguments>]{<body>}
。组织手册中列出了可能的标头参数:Specific Header Arguments。
注意:当组织文件通过org-export-dispatch
导出时,将替换该值。
答案 1 :(得分:0)
如果我理解正确,您希望将多个源块链接到同一进程。
这很简单:
#+BEGIN_SRC ipython :results output :session testing
a = 5
#+END_SRC
#+RESULTS:
#+BEGIN_SRC ipython :results value :session testing
a
#+END_SRC
#+RESULTS:
: # Out[6]:
: : 5
在此示例中,两个源块被链接。
您还可以将所有源块缠结到一个.py
文件中。
使用M-x org-babel-tangle-file
,每次您运行该命令时,文件都会更新为新的缠结。