Problem:
You need to convert pandas DataFrame to a LaTeX table. You want to include the pandas column and row labels in the table.
Solution:
Have a look a the Pandas to_latex
function which should suit most purposes.
The script provided here can be used as a building block to convert your Python data structure to a fully customized LaTeX tabular
or any comparable LaTeX structure.
By default it generates a table like this:
#!/usr/bin/env python3 """ Converts pandas DataFrames to LaTeX {tabular}. Does not require any external LaTeX packages Version 1.1: Python3 read """ import pandas import io #Used as buffer __author__ = "Uli Köhler" __license__ = "Apache license v2.0" def convertToLaTeX(df, alignment="c"): """ Convert a pandas dataframe to a LaTeX tabular. Prints labels in bold, does not use math mode """ numColumns = df.shape[1] numRows = df.shape[0] output = io.StringIO() colFormat = ("%s|%s" % (alignment, alignment * numColumns)) #Write header output.write("\\begin{tabular}{%s}\n" % colFormat) columnLabels = ["\\textbf{%s}" % label for label in df.columns] output.write("& %s\\\\\\hline\n" % " & ".join(columnLabels)) #Write data lines for i in range(numRows): output.write("\\textbf{%s} & %s\\\\\n" % (df.index[i], " & ".join([str(val) for val in df.ix[i]]))) #Write footer output.write("\\end{tabular}") return output.getvalue() if __name__ == "__main__": import numpy #Example code array = numpy.zeros((5,6)) df = pandas.DataFrame(array, index=list("abcde"), columns=list("ABCDEF")) print(convertToLaTeX(df))