最初,您可以简单地在PandasDataFrame
对象的to_latex
方法中传递一个参数。现在,您将看到一条关于签名更改的警告消息。例子:
>>> import pandas as pd
>>> import numpy as np
>>> data = {f'Column {i + 1}': np.random.randint(0, 10, size=(10, )) for i in range(5)}
>>> df = pd.DataFrame(data)
>>> df
Column 1 Column 2 Column 3 Column 4 Column 5
0 1 8 3 3 5
1 8 6 7 7 3
2 2 1 6 1 1
3 9 7 9 5 5
4 5 4 7 8 9
5 9 5 3 6 2
6 6 9 9 6 8
7 8 7 2 6 5
8 4 9 4 6 2
9 2 6 5 3 0
>>> lat_og = df.to_latex(index=False)
<ipython-input-7-986346043a05>:1: FutureWarning: In future versions `DataFrame.to_latex` is expected to utilise the base implementation of `Styler.to_latex` for formatting and rendering. The arguments signature may therefore change. It is recommended instead to use `DataFrame.style.to_latex` which also contains additional functionality.
lat_og = df.to_latex(index=False)
>>> print(lat_og)
begin{tabular}{rrrrr}
toprule
Column 1 & Column 2 & Column 3 & Column 4 & Column 5 \
midrule
1 & 8 & 3 & 3 & 5 \
8 & 6 & 7 & 7 & 3 \
2 & 1 & 6 & 1 & 1 \
9 & 7 & 9 & 5 & 5 \
5 & 4 & 7 & 8 & 9 \
9 & 5 & 3 & 6 & 2 \
6 & 9 & 9 & 6 & 8 \
8 & 7 & 2 & 6 & 5 \
4 & 9 & 4 & 6 & 2 \
2 & 6 & 5 & 3 & 0 \
bottomrule
end{tabular}
您得到所需的输出没有索引列,但我不想继续使用这个,如果它会改变,或者如果我必须连续import warnings
来修复它。
警告消息建议我们使用style
属性。我如何使用style
属性来忽略索引列?我阅读了与style
属性相关的to_latex
方法的文档,但它没有上面的简单参数。例子:
>>> lat_new = df.style.to_latex(hrules=True)
>>> print(lat_new)
begin{tabular}{lrrrrr}
toprule
& Column 1 & Column 2 & Column 3 & Column 4 & Column 5 \
midrule
0 & 1 & 8 & 3 & 3 & 5 \
1 & 8 & 6 & 7 & 7 & 3 \
2 & 2 & 1 & 6 & 1 & 1 \
3 & 9 & 7 & 9 & 5 & 5 \
4 & 5 & 4 & 7 & 8 & 9 \
5 & 9 & 5 & 3 & 6 & 2 \
6 & 6 & 9 & 9 & 6 & 8 \
7 & 8 & 7 & 2 & 6 & 5 \
8 & 4 & 9 & 4 & 6 & 2 \
9 & 2 & 6 & 5 & 3 & 0 \
bottomrule
end{tabular}
索引列在LaTeX中。有哪些方法可以在不使用原始方法的情况下删除索引列?
<标题>编辑如果您遇到这个问题,请了解pandas开发人员正计划弃用DataFrame.to_latex()
方法。他们目前正在使用Styler.to_latex()
方法代替。到目前为止,签名是不一样的,需要额外的方法来隐藏索引列或转义latex语法。请参阅41649了解有关该过程的更多当前更新,并参阅44411了解兔子洞的开始。他们计划在pandas 2.0中修复这个问题。
可以使用Pandas数据框的style
属性的hide()方法。下面的代码将生成一个乳胶表没有索引的值:
import pandas as pd
import numpy as np
data = {f'Column {i + 1}': np.random.randint(0, 10, size=(10, )) for i in range(5)}
df = pd.DataFrame(data)
lat_new = df.style.hide(axis="index").to_latex(hrules=True)
print(lat_new)
结果如下:
begin{tabular}{rrrrr}
toprule
Column 1 & Column 2 & Column 3 & Column 4 & Column 5 \
midrule
2 & 5 & 9 & 2 & 2 \
2 & 6 & 0 & 9 & 5 \
3 & 2 & 4 & 3 & 2 \
8 & 9 & 3 & 7 & 8 \
5 & 9 & 7 & 4 & 4 \
0 & 3 & 2 & 2 & 6 \
5 & 7 & 7 & 8 & 6 \
2 & 2 & 9 & 3 & 3 \
6 & 0 & 0 & 9 & 2 \
4 & 8 & 7 & 5 & 9 \
bottomrule
end{tabular}