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}