Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据不同列的内容格式化“to_latex()”输出?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何根据不同列的内容格式化“to_latex()”输出?

Python 如何根据不同列的内容格式化“to_latex()”输出?,python,pandas,dataframe,Python,Pandas,Dataframe,我会跟进。假设我有以下数据帧 df = pd.DataFrame({'col1': [1, 3], 'col2': [2, 1]}) 从那里我可以得到一张乳胶桌子 df.to_latex() 我知道我可以为每个列传递一个格式化程序,如上图所示。 我的问题是:如何根据col2和反之亦然的元素设置col1元素的格式 例如,假设我想给一个单元格添加一个加号,如果它的值高于相邻单元格的值,则得到以下结果 \begin{tabular}{lrr} \toprule {} & col1 &am

我会跟进。假设我有以下数据帧

df = pd.DataFrame({'col1': [1, 3], 'col2': [2, 1]})
从那里我可以得到一张乳胶桌子

df.to_latex()
我知道我可以为每个列传递一个格式化程序,如上图所示。 我的问题是:如何根据
col2
和反之亦然的元素设置
col1
元素的格式

例如,假设我想给一个单元格添加一个加号,如果它的值高于相邻单元格的值,则得到以下结果

\begin{tabular}{lrr}
\toprule
{} &  col1 &  col2 \\
\midrule
0 &     1 &     +2 \\
1 &     +3 &     1 \\
\bottomrule
\end{tabular}

看起来
格式化程序
只接受处理单元格值的函数,而不接受有关数据帧索引/列的任何信息。所以这可能不符合你的目的

我将预先格式化数据,并将其传递到

strs = np.array([['','+']]* len(df))
signs =  np.where(df['col1'].lt(df['col2']).values[:,None], strs,strs[:,::-1])

(signs + df.astype(str)).to_latex()
输出:

\begin{tabular}{lll}
\toprule
{} & col1 & col2 \\
\midrule
0 &    1 &   +2 \\
1 &   +3 &    1 \\
\bottomrule
\end{tabular}