如何从Pandas DataFrame中获取乳胶字符串时删除索引列



最初,您可以简单地在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}

相关内容

  • 没有找到相关文章

最新更新